我有正在播放电视流的应用程序,需要一直打开。
我确实在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();
}

07-27 19:38