如何在多个活动中安全地实施WakeLock

Tho*_*mas 0 android android-wake-lock

我希望为我的应用程序的用户提供使用a保持屏幕的能力WakeLock.在我的主要活动中,我创建了以下函数:

protected void processWakeLock(int pauseResume) {
   switch (pauseResume) {
   case STATE_RESUME:
      if (mKeepScreenOn) {
         wakeLock.acquire();
      }
      break;
   case STATE_PAUSE:
      if (wakeLock.isHeld()) {
         wakeLock.release();
      }
      break;
   }
}
Run Code Online (Sandbox Code Playgroud)

我目前正在通过我的覆盖onPauseonResume覆盖来调用它,因为我希望确保在他们不主动使用我的应用程序时不会导致用户手机上的锁定.我的应用程序有3个其他全屏视图.什么是确保他们可以WakeLock继续使用我的应用程序的所有部分同时仍然对其余手机安全的最佳方法.

我的第一个想法是在我的每个活动中复制相同的代码片段,虽然这似乎是很多锅炉板.我无法使用onStart,onStop因为当我切换到另一个全屏幕活动时,可见性会丢失.虽然也许会更好

基于此处的图表和信息(http://developer.android.com/guide/topics/fundamentals.html),我没有看到更好的方法来应用锁定.

Com*_*are 5

不要使用WakeLock- 更多的是服务,并要求您持有额外的权限.

相反,在您的活动中使用setKeepScreenOn()某些内容View.根据您收集偏好的方式,根据onCreate()一个SharedPreference或多个来调用它Intent.