Я объявил службу, которая будет действовать как очередь. Поэтому у меня есть переменная, которая сообщает службе, что это первый запуск, а другой, который хранит значение.Переменные в моем сервисе/IntentService сбрасываются при каждом запуске
код выглядит следующим образом:
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
. Я думал, что если Служба уже создана, а затем запущена с Intent, она снова вызовет только onStartCommand()
и не сбросит все.
Я также пробовал только объявлять переменные и устанавливать их по умолчанию в onCreate()
, но это имело такой же эффект. Также я попытался заменить Service
на IntentService
, но это тоже не помогает.
Хотелось бы избежать использования SharedPreferences
, так как я не думаю, что это необходимо в этом случае. (И я не хочу тратить время на запись циклов записи пользователя).
Я что-то упустил? Думаю, это не из-за объявления private
, не так ли?
Марк из Дуэтленда! Я понятия не имею, но я поддержал это. – wwwroth