我希望爲我的應用程序的用戶提供使用WakeLock
來保持屏幕的功能。在我的主要活動我創建了以下功能:如何在多個活動中安全地實現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;
}
}
我目前從我的和onResume
覆蓋調用它,因爲我想使某些我不引起用戶的手機上的鎖,當他們不積極使用我的申請。我的應用程序有3個其他全屏視圖。什麼是確保他們的WakeLock
可以繼續傳輸到我的應用程序的所有部分,同時仍然保證其手機的其他部分安全的最佳方法。
我的第一個想法是在我的每個活動中重複相同的代碼片段,雖然這看起來像很多鍋爐板。我不能使用onStart
和onStop
,因爲當我切換到另一個全屏活動時,可見性丟失。雖然也許這會更好
根據此處的圖表和信息(http://developer.android.com/guide/topics/fundamentals.html)我沒有看到更好的方法來應用鎖。
那麼什麼時候適合使用'WakeLock' – Thomas 2010-11-21 21:57:58
@Thomas:在'服務'中。在'View'中給出'setKeepScreenOn()'的存在,在'Activity'中做這件事毫無意義。 – CommonsWare 2010-11-21 22:07:34
不幸的是,'setKeepScreenOn()'不具有與'SCREEN_DIM_WAKE_LOCK'相同的行爲 – Thomas 2010-11-21 22:11:48