Ho un servizio che dovrebbe essere eseguito in background. Inizia quando la mia app è aperta e termina quando l'app viene disattivata dall'utente.WakeLock finalizzato mentre si continua a contenere errori anche se lo sto rilasciando
Ogni volta che la mia app è in background o quando lo schermo è spento, ho ancora bisogno del servizio in esecuzione.
Ho raggiunto questo con un WakeLock, ma per qualche motivo ottengo l'errore nel titolo.
Ciò è dovuto al fatto che potrebbe esserci una perdita di memoria del WakeLock (se ho capito bene).
Sono in grado di attivare l'errore riavviando la mia app.
Ecco il codice rilevante:
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();
}
}
Sono perplesso perché nella mia onDestroy()
rilascio l'Wakelock. Non sono sicuro di cosa stia provocando l'errore.
Anche io sto affrontando lo stesso problema. Quindi hai trovato qualche soluzione? –
Hai provato a spostare la creazione del blocco su 'onCreate()'? – iosdude
@iosdude Ho provato, ma è lo stesso. – Pitel