1

我使用 WakeLock 在后台启动服务,下班后我停止服务并释放 WakeLock。但我不知道正确的顺序。它工作正常,但我总是得到错误:

10-13 14:48:23.320: A/PowerManager(20951): WakeLock finalized while still held: AppService

以下是我的代码片段:

PowerManager pm = (PowerManager)getApplicationContext().getSystemService(Context.POWER_SERVICE);
WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);

wl.acquire();

工作完成后,停止一切,但顺序是:

stopForeground(true);
wl.release();                   
stopSelf(); 
4

1 回答 1

1

您不需要调用 stopForeground,因为您在它之后立即调用 stopSelf。这可能是问题所在。没有看到你持有 Wakelock 对象的位置,这是我最好的猜测。不过,您在 stopSelf 之前调用 release 是正确的。

于 2012-10-13T13:33:54.983 回答