我有正在播放电视流的应用程序,需要一直打开。
我确实在OnCreate()中获得了唤醒锁
pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK, TAG);
wl.acquire();
然后在onDestroy()中释放
if (wl != null) {
wl.release();
wl = null;
}
用户通常可以通过按返回,主页或电源按钮来最小化应用程序
然后从主屏幕恢复,点击应用程序图标。
我确实在onPause()中释放唤醒锁,并在onResume()中获取。
我不时看到应用程序崩溃或完全从屏幕上消失,我看到了
与唤醒锁相关的日志。
这是控制Android Power Manager唤醒锁定的最佳实践吗?
欢迎任何意见。
最佳答案
就像您说的那样,您确实释放了onPause()
中的唤醒锁并获取了onResume()
中的锁。不过,这是一个好习惯,我建议您也在onUserLeaveHint()
中释放唤醒锁。
onUserLeaveHint()
@Override
protected void onUserLeaveHint() {
try {
// your code.
// release the wake lock
wl.release();
}catch(Exception ex){
Log.e("Exception in onUserLeaveHint", ex.getMessage);
}
super.onUserLeaveHint();
}