Я объявил службу, которая будет действовать как очередь.Поэтому у меня есть переменная, которая сообщает службе, что это первый запуск, а другая хранит значение.
Код выглядит следующим образом:
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
, не так ли?