Las variables en mi servicio/servicio de servicio se restablecen en cada inicio
-
30-10-2019 - |
Pregunta
Declaré un servicio, que actuará como una cola. Por lo tanto, tengo una variable que le dice al servicio que es el primer inicio y otro que almacena un valor.
El código se ve así:
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();
}
}
De acuerdo, el problema es que este servicio se inicia desde un receptor. Y cada vez que se inicia, ambos lastvol
y isFirstStart
son restablecidos. Pensé, si el servicio ya se creó y luego comenzó con una intención, solo llamaría onStartCommand()
de nuevo y no reiniciar todo.
También intenté declarar solo las variables y configurarlas en el valor predeterminado en onCreate()
, pero eso tuvo el mismo efecto. También intenté reemplazar el Service
con un IntentService
, pero eso tampoco ayuda, el mismo problema.
Me gustaría evitar usar SharedPreferences
, ya que no creo que sea necesariamente necesario en este caso. (Y no quiero desperdiciar los ciclos de escritura del usuario).
¿Me estoy perdiendo de algo? Supongo que no es por el private
Declaración, ¿verdad?
No hay solución correcta