我有一个应该在后台运行的服务。它在我的应用程序打开时启动,并在用户关闭应用程序时结束。
每当我的应用程序处于后台或屏幕关闭状态时,我仍然需要该服务运行。
我使用WakeLock实现了这一点,但由于某种原因我遇到了标题中的错误。
这很令人担忧,因为我可能会泄漏WakeLock(如果我理解正确的话)。
我可以通过重新启动我的应用程序来触发此错误。
以下是相关代码:
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();
}
}
我感到困惑,因为在我的onDestroy()
函数中释放了WakeLock。我不确定是什么触发了这个错误。
onCreate()
吗? - iosdude