Mam usługę, która powinna działać w tle. Zaczyna się, gdy moja aplikacja jest otwarta, i kończy się za każdym razem, gdy moja aplikacja zostanie wyłączona przez użytkownika.Funkcja WakeLock sfinalizowana, mimo że nadal występuje błąd, mimo że ją zwalniam.
Zawsze, gdy moja aplikacja jest w tle lub gdy ekran jest wyłączony, nadal potrzebuję usługi.
Osiągnąłem to dzięki WakeLock, ale z jakiegoś powodu dostaję błąd w tytule.
Jest to niepokojące, ponieważ mogę być przyczyną wycieku pamięci WakeLock (jeśli dobrze rozumiem).
Jestem w stanie wyzwolić błąd, ponownie uruchamiając moją aplikację.
Oto odpowiedni kod:
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();
}
}
Jestem zakłopotany, ponieważ w moim onDestroy()
I zwolnić blokada wybudzenia. Nie jestem pewien, co powoduje błąd.
Mam również ten sam problem. Więc znalazłeś jakieś rozwiązanie? –
Czy próbowałeś przenieść tworzenie blokady do 'onCreate()'? – iosdude
@iosdude Próbowałem, ale to jest to samo. – Pitel