对Android中的Alarm机制学习
Android中的定时一般有两种实现方式1、使用Java-api中的Timer 2、一种是Android中Alarm机制这两种一般都能实现基本的功能,但是两者也是有区别的,根据不同的场合去使用不同的定时任务。
- Timer有一个短板,那就是不适用长期在后台运行的任务,Android手机长时间不操作会使CPU进入休眠状态,这样就会使Timer的定时任务无法完成。
- Alarm就能去实现定时的功能
使用Alarm的步骤
-
获取AlarmManager的实例
AlarmManager manage=(AlarmManager)getSystemService(Content.ALARM_SERVICE); -
调用AlarmManager的set()方法就能设置一个定时任务,此方法接收三个参数
1、第一个参数是一个整数,用于指定Alarm的工作类型(ELAPSED_REALTIME、ELAPSED_REALME_WAKEUP、RTC、RTC_WAKEUP)
ELAPSED_REALTIME:表示让定时任务的触发时间从系统的开机算起,但不会唤醒CPU
ELAPSED_REALME_WAKEUP:表示让定时任务的触发时间从系统的开机算起,但会唤醒CPU
RTC:表示让定时任务的触发时间从1970.1.1:0开始,但不会唤醒CPU
RTC_WAKEUP:表示让定时任务的触发时间从1970.1.1:0开始,但会唤醒CPU
2、这个参数是任务的触发时间,以毫秒为单位
3、PendingIntent ,一般用getService()方法或者getBroadcast()方法,这样。onStartCommand();onReceive()方法就会得到执行。