WakeLock finalizó mientras seguía teniendo error aunque lo estoy lanzando

Tengo un servicio que se debe ejecutar en el fondo. Comienza cuando mi aplicación está abierta y finaliza cuando mi aplicación está desactivada por el usuario.

Siempre que mi aplicación esté en segundo plano o cuando la pantalla esté apagada, todavía necesito que se ejecute el servicio.

Logré esto con un WakeLock, pero por alguna razón consigo el error en el título.

Esto es preocupante, ya que podría ser la memoria fugas de la WakeLock (si lo entiendo correctamente).

Puedo activar el error reiniciando mi aplicación.

Aquí está el código relevante:

public class SomeService extends Service { @Override public int onStartCommand(Intent intent, int flags, int startId) { super.onStartCommand(intent, flags, startId); PowerManager manager = (PowerManager) getSystemService(POWER_SERVICE); mWakeLock = manager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "TAG"); if (!mWakeLock.isHeld()) mWakeLock.acquire(); //Handle other processing return START_STICKY; } @Override public void onDestroy() { if (mWakeLock.isHeld()) mWakeLock.release(); super.onDestroy(); } } 

Estoy perplejo porque en mi onDestroy() suelto el WakeLock. No estoy seguro de qué está provocando el error.

Service.onStartCommand() se puede llamar varias veces antes de Service.onDestroy() , ya que no representan eventos / estados "opuestos" (vea Documentos ). Usted puede adquirir varios bloqueos (y perder la referencia al bloqueo adquirido anterior cada vez), pero cuando el servicio está terminado / se cierra la aplicación, está liberando sólo el último.

  • Wake se bloquea servicio androide recurrente
  • WakeLock finalizado mientras se mantiene
  • Android no recibe actualizaciones de ubicación cuando la pantalla está bloqueada
  • Si un wakelock es adquirido y mi aplicación se bloquea, ¿qué debo hacer?
  • Preguntas para principiantes: Wakelocks
  • ¿Sigue funcionando un servicio incluso cuando el teléfono está dormido?
  • Pantalla tenue mientras el usuario está inactivo
  • Unity3D Android Lockscreen no se muestra cuando la pantalla se agota. (Wakelock?)
  • Uso de WakeLock para mantener una reproducción en secuencia
  • ¿Qué eventos pueden despertar un dispositivo Android durmiente?
  • GPS de seguimiento de Android y WakeLock
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.