Android 如何跨多个活动安全地实施WakeLock

Android 如何跨多个活动安全地实施WakeLock,android,android-wake-lock,Android,Android Wake Lock,我希望为我的应用程序的用户提供使用唤醒锁保持屏幕打开的能力。在我的主要活动中,我创建了以下功能: protected void processWakeLock(int pauseResume) { switch (pauseResume) { case STATE_RESUME: if (mKeepScreenOn) { wakeLock.acquire(); } break; case STATE_PAUSE:

我希望为我的应用程序的用户提供使用
唤醒锁
保持屏幕打开的能力。在我的主要活动中,我创建了以下功能:

protected void processWakeLock(int pauseResume) {
   switch (pauseResume) {
   case STATE_RESUME:
      if (mKeepScreenOn) {
         wakeLock.acquire();
      }
      break;
   case STATE_PAUSE:
      if (wakeLock.isHeld()) {
         wakeLock.release();
      }
      break;
   }
}
我目前正在通过我的
onPause
onResume
覆盖调用它,因为我希望确保当用户不积极使用我的应用程序时,我不会导致锁定用户的手机。我的应用程序还有3个全屏视图。什么是确保他们的
唤醒锁
在我的应用程序的所有部分都能正常运行的最佳方法,同时确保他们手机的其他部分仍然安全

我的第一个想法是在我的每个活动中复制相同的代码片段,尽管这看起来像是一个很大的麻烦。我不能使用
onStart
onStop
,因为当我切换到另一个全屏活动时,可见性会丢失。虽然也许最好是


根据这里的图表和信息(),我看不到更好的应用锁的方法。

不要使用
WakeLock
——这更多是为了服务,需要您持有额外的权限


相反,在活动中的某些视图上使用
setKeepScreenOn()
。根据
共享参考
意图
额外调用
onCreate()
,具体取决于您收集首选项的方式。

不要使用
唤醒锁
——这更多是为了服务,需要您持有额外的权限


相反,在活动中的某些视图上使用
setKeepScreenOn()
。根据
共享参考
意图
额外调用
onCreate()
,具体取决于您收集偏好的方式。

那么什么时候适合在
服务
中使用
唤醒锁
@Thomas:。鉴于
视图上存在
setKeepScreenOn()
,在
活动中这样做毫无意义。不幸的是
setKeepScreenOn()
屏幕_DIM_WAKE _LOCK
没有相同的行为,因此在
服务
中何时使用
WakeLock
@Thomas:。考虑到
视图上存在
setKeepScreenOn()
,在
活动中这样做毫无意义。不幸的是
setKeepScreenOn()
没有与
屏幕调暗唤醒锁定相同的行为