Arka planda çalıştırılması gereken bir hizmetim var. Uygulamam açıkken başlar ve uygulamam kullanıcı tarafından kapatıldığında sona erer.WakeLock, hala bıraktığım halde hata devam ederken
Uygulamam arka planda olduğunda veya ekran kapatıldığında, yine de çalışmaya devam etmem gerekiyor.
Bunu bir WakeLock ile başardım, ancak bir nedenle başlığında hatayı alıyorum.
Bu, WakeLock'tan sızan bellek olabileceğinden (doğru anlıyorsam) ilgili.
Uygulamamı yeniden başlatarak hatayı tetikleyebilirim.
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();
}
}
benim onDestroy()
I Uyandırma kilidi serbest çünkü şaşkın değilim:
İşte alakalı kodudur. Hatayı neyin tetiklediğinden emin değilim. onlar 'zıt' etkinlikleri/durumlarını (docs bakınız) temsil etmediği için
Aynı sorunla da karşı karşıyayım. Yani, herhangi bir çözüm buldunuz? –
Kilidin oluşturulmasını 'onCreate()' konumuna taşımayı denediniz mi? – iosdude
@iosdude Denedim, ama aynı. – Pitel