参考:点击打开链接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的封装,包含了指定的动作。