Android 代码设置休眠
1、App代码中不做任何处理,当按下电源键,屏幕关闭,设备就会开始休眠,App任务就会终止,直到系统唤醒过来。如果希望按下电源键之后App还能在后台运行,就需要做以下处理。
2、在AndroidManifest.xml中申请wakelock权限。<uses-permission android:name="android.permission.WAKE_LOCK"/>
3、在class中输入以下代码:PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, LOG_TAG);wl.acquire();// TODO: 执行一些任务,例如播放音乐 2017/11/1wl.release();
4、重新编译安装App,当App运行起来执行上述TODO任务时,即使屏幕熄灭,任务也能正常执行,直到wl.release()执行了之后,设备系统就会开始休眠流程。
5、WakeLock有很多种。如PARTIAL_WAKE_LOCK用于保持CPU运行,屏幕可以关闭,常见的如播放音乐时会使用到。ACQUIRE_CAUSES_WAKEUP常用于通知,可以让屏幕从灭屏状态忽然亮一下。详细地请参考Android开发官网,根据需要选用。
6、wl.acquire()和wl.release(拘七呷憎)必须是成对使用,通常在onRusume方法中将设置的wakelock使用acquire()方法来保持唤醒,在onPause方法中使吹涡皋陕用release()方法来释放掉该wakelock,根据Activity生命周期来巧妙地使这两个方法成对的出现。
7、PowerManager和PowerManager.WakeLoc氯短赤亻k还有很多方法,常用的有isHeld()方法用于判断w锾攒揉敫akelock是否以及释放,isInteractive()用于判断设备是否处于Iinteractive状态,isPowerSaveMode()等用于判断设备当前的是否处于节能状态。更多的请仔细阅读Andorid开发API,按需设计应用的休眠策略。