Alarm Controller演示如何在Android应用中使用Alarm事件,其功能和java.util.Timer ,TimerTask类似。但Alarm可以即使当前应用退出后也可以做到Schedule一个任务在指定的时刻执行。
AlarmManager 用于管理Alarm事件,支持单次执行或重复执行。 和大都数Android服务一样,AlarmManager也是通过getSystemService来获取服务对象:
AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
与TimerTask对应的任务描述类型为PendingIntent,PendingIntent描述了将要执行的Intent,PendingIntent没有提供构造函数,需要通过static 函数getActivity(Context, int, Intent, int), getBroadcast(Context, int, Intent, int), getService(Context, int, Intent, int) 来或得想要执行的Activity,Broadcast,Service描述。
本例中是取得对Broadcast OneShotAlarm 和RepeatingAlarm的描述,分别对应于单次执行时执行的Broadcast事件和多次执行时Broadcast事件,它们在AndroidManifest.xml定义为Broadcast Receiver:
<receiver android:name=”.app.OneShotAlarm” android:process=”:remote” />
<receiver android:name=”.app.RepeatingAlarm” android:process=”:remote” />
Schedule单次Alarm事件代码如下:

这篇博客解析了Android中的AlarmController如何设置定时任务,即便应用退出仍能执行。AlarmManager是管理Alarm事件的关键,它支持一次性或周期性的任务。通过PendingIntent描述待执行的Intent,与Broadcast Receiver交互。示例展示了如何安排单次和重复的Alarm事件,并提供了取消Alarm事件的方法。未取消的重复Alarm会在后台持续触发,直到设备重启。
最低0.47元/天 解锁文章
839

被折叠的 条评论
为什么被折叠?



