Android AlarmManager 唤醒睡眠中的机器

AlarmManager 的使用是 Android 初学者比学掌握的,网上教程一箩筐,这里就不罗嗦了。

这里有一个比较好的教程 Android – Creating an Alarm with AlarmManager

本文的重点是如何把休眠的机器唤醒,点亮屏幕并显示相关的界面。

但是值得注意的就是,AlarmManager 唤醒系统后,跑完相关程序后,又会继续休眠下去。

如果你需要像我一样,唤醒屏幕去显示闹钟界面,那就要加上 WakeLock。

WakeLock 相关源码:

private PowerManager.WakeLock wl;
...
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
wl = pm.newWakeLock(PowerManager.FULL_WAKE_LOCK, "My Tag");
wl.acquire();
...
... //The rest of the onCreate() is still the same (for now)
}

protected void onStop() {
super.onStop();
wl.release();
}

// 值得注意的是,WakeLock 必须 release, 具体位置可以自己安排

// 别忘了加上权限
uses-permission android:name="android.permission.WAKE_LOCK";

更多可以参考这里: Starting Activity from Sleeping Device

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据