私のサービス/Intentserviceの変数は、すべての開始時にリセットされます
-
30-10-2019 - |
質問
私は、キューとして機能するサービスを宣言しました。したがって、サービスに最初のスタートであることを伝える変数と、値を保存する別の変数があります。
コードは次のようになります:
public class TTSQueue extends Service {
private Integer lastvol = 0;
private Boolean isFirstStart = true;
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
Bundle b = intent.getExtras();
Integer vol = b.getInt(TTS.PARAM_LAST_VOL, 0);
if (vol > lastvol) {
lastvol = vol;
}
if (isFirstStart) {
isFirstStart = false;
startAnotherService();
} else {
waitForAnEventAndThen_startAnotherService();
}
}
さて、問題は、このサービスがレシーバーから開始されることです。そして、それが始まるたびに、両方 lastvol
と isFirstStart
リセットされています。サービスが既に作成されていて、意図的に開始された場合、電話だけに電話すると思いました onStartCommand()
繰り返しますが、すべてをリセットしません。
また、変数を宣言してデフォルト値に設定するだけで試してみました onCreate()
, 、しかし、それは同じ効果がありました。また、交換してみました Service
で IntentService
, 、しかし、それも同じ問題ではありません。
使用を避けたいです SharedPreferences
, 、この場合は必ずしも必要ではないと思います。 (そして、ユーザーの書き込みサイクルを無駄にしたくありません)。
私は何かが足りませんか?のためではないと思います private
宣言、それですか?
正しい解決策はありません
所属していません StackOverflow