AlarmManager 的使用

来源:互联网 发布:八旗军战斗力 知乎 编辑:程序博客网 时间:2024/06/03 20:39

参考:点击打开链接http://blog.csdn.net/maosidiaoxian/article/details/21776697

         Android 定时操作方法AlarmManager,Timer,Handler

Timer有一个明显的短板,它并不太适用于那些需要长期在后台运行的定时任务。我们都知道,  为了能让电池更加耐

用,每种手机都会有自己的休眠策略,Android 手机就会在长时间不操作的情况下自动让 CPU 进入到睡眠状态,这就

有可能导致 Timer 中的定时任务无法正常运行另一方面,其实也可以通过handler的poseDelay方法来实现定时操作,

也是不靠谱的,因为默认handler依赖于线程(main线程或者子线程),所以只要进程被杀死,所有相关的线程都被杀死,

所以handler中的定时操作就无效了。timer也一样,因为timer实际上是另启一个子线程,进程被杀了,子线程当然也被

杀了,所以time失效。。。。而 Alarm 机制则不存在这种情况,它通过pendingintent具有唤醒 未启动的进程 的功能,即可以保证每次需要执行定时任务的时候 CPU 都能正常工作。但是闹钟当设备关机和重启后,闹钟将会被清除


AlarmManager是Android中的一种系统级别的提醒服务,它会为我们在特定的时刻广播一个指定的Intent。而使用Intent的时候,我们还需要它执行一个动作,如startActivity,startService,startBroadcast,才能使Intent有用。通常我们使用PendingIntent,它可以理解为对Intent的封装,包含了指定的动作。



0 0