因此,我正在查看PowerManager以防止手机进入睡眠状态。
两个问题:
1)我的手机当前设置为X秒后关闭显示器,PowerManager.Wakelock函数是否会覆盖此设置?
2)我的手机有一个顶部的按键,可以用来关闭显示屏,或关闭手机。PowerManager.WakeLock是否也会覆盖此功能?
欣赏洞察力
发布于 2011-12-31 17:05:24
private void goToSleepLocked(long time,int reason) { if (mLastEventTime <= time) { mLastEventTime = time;//取消所有唤醒锁mWakeLockState = SCREEN_OFF;int N= mLocks.size();int numCleared = 0;boolean proxLock = false;for (int i=0;i
所以你可以看到在这个方法中所有的wakelock都被关闭了。
goToSleep方法只能由系统组件调用(受签名权限保护)。我想它是在你按下电源按钮的时候调用的。所以它重写了所有的唤醒锁。
发布于 2012-06-01 16:14:47
1)是的,当然!如果屏幕处于打开状态,并且您获取了wakelock,则即使在屏幕超时后,屏幕仍将保持打开状态。如果屏幕关闭,而你想要打开它,那么你必须像这样创建wakelock实例并获取。
PowerManager.WakeLock wl = pm.newWakeLock(
PowerManager.SCREEN_DIM_WAKE_LOCK
| PowerManager.ACQUIRE_CAUSES_WAKEUP, TAG);
wl.acquire();这将强制打开您的屏幕。
2)任何wakelock都不能覆盖该功能。尽管我不同意Yury的观点,但Top button只是关闭了屏幕,并没有调用goToSleep(long time)方法。因此,除非您关闭设备,否则不会释放部分唤醒。
https://stackoverflow.com/questions/8687022
复制相似问题