AlarmManager通常用于开发手机闹钟,但实际上它的作用不止于此。他本质是一个全局定时器,AlarmManager可以在指定时间或指定周期内启动其他组件(包含Activity,BroadcastReceviecer,Service)。
通过Context的getSystemService()方法来获取AlarmManager对象,一旦程序获得AlarmManager对象之后,就可以调用方法来设置定时启动指定组件。
1、void set(int type,long triggerAtTime,PendingIntent operation),第一个参数指定定时服务的类型,该参数可接受如下值:
ELAPSED_REALTIME:指定从现在开始过了一定时间后启动operation所对应的组件。
ELAPSED_REALTIME_WAKEUP:指定从现在开始一定时间后启动operation指定的组件,即使系统关机也会执行operation所对应的组件。
RTC:指定当系统调用System.currentTimeMillis()方法返回值与triggerAtTime相等时启动operation所对应的组件。
RTC_WAKEUP:当系统调用System.currentTimeMillis()方法返回值与triggerAtTime相等时启动operation所对应的组件,即使系统关机也会执行operation对应的组件。
2、void setInexactRepeating(int type,long triggerAtTime,long interval,PendingIntent operation):设置一个非精确的周期性任务,例如设置Alarm每小时启动一次,但系统并一定总在每个小时的开始启动Alarm服务。
3、void setRepeating(int type,long triggerAtTime,long interval,PendingIntent operation);设置一个周期性执行的定时服务。
4、void cancle(PendingIntent operation);取消AlarmManager的定时服务。
AlarmManager应用:
设置闹钟
定时更换壁纸
疯狂Android P408