唤醒锁定
如果需要使 CPU 保持运行状态,以便在设备进入休眠模式之前完成某项工作,可以使用“唤醒锁定” 。
添加权限
<uses-permission android:name="android.permission.WAKE_LOCK" />
设置唤醒锁定
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
powerManager.isInteractive();
PowerManager.WakeLock wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK,"MyApp::MyWakelockTag");
wakeLock.acquire();
wakeLock.acquire(10*60*1000L /*10 minutes*/);
默认用 wakeLock.acquire() ,使用后要及时释放。
wakeLock.acquire(10 * 60 * 1000L /* 10 minutes */); 是 AS 报黄提示的修改 , acquire(long timeout)
方法会在指定时间后自动释放唤醒锁。
释放唤醒锁定
wakeLock.release();
判断系统屏幕亮灭
一般屏幕亮起、关闭的时候会分别触发 android.intent.action.SCREEN_ON
、 android.intent.action.SCREEN_OFF
广播。
屏幕亮起、关闭的瞬间可以通过广播判断,不在这个瞬间就用 isInteractive()
.
isScreenOn 已废弃。
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
//powerManager.isScreenOn();
powerManager.isInteractive();
重启设备
需要是系统应用。
添加权限
<uses-permission android:name="android.permission.REBOOT" />
执行重启,
PowerManager powerManager = (PowerManager) getSystemService(POWER_SERVICE);
powerManager.reboot(null);