多语言展示
当前在线:1237今日阅读:84今日分享:32

Android 代码设置休眠

跟Android休眠策略关系最紧密的class有两个,一个是PowerManager,另一个是PowerManager.WakeLock。通过这两个class,可以实现设备的电源管理,下文详细介绍如何在代码中实现电源管理。
工具/原料

Android Studio

方法/步骤
1

App代码中不做任何处理,当按下电源键,屏幕关闭,设备就会开始休眠,App任务就会终止,直到系统唤醒过来。如果希望按下电源键之后App还能在后台运行,就需要做以下处理。

2

在AndroidManifest.xml中申请wakelock权限。

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生命周期来巧妙地使这两个方法成对的出现。

注意事项
1

wakelock使用完,必须释放掉。如果不释放,就会造成App即使推出了,系统仍无法进入休眠。

2

谢谢您的阅读,如果你觉得本文有用,请点赞哦。

推荐信息