1.概述
AlarmManager通常用途是用来开发手机闹钟,但是AlarmManager的用处并只是这个。AlarmManager其实是一个全局定时器,它可以在指定时间或指定周期启动其他组件,在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,当到达这个时间,就会发出广播提醒我们.
2.AlarmManager的常用方法有三个
- set(int type,long startTime,PendingIntent pi)
- setRepeating(int type,long startTime,long intervalTime,PendingIntent pi)
- setInexactRepeating(int type,long startTime,long intervalTime,PendingIntent pi)
下面我们讲一下这三个方法的用途
2.1首先了解一下 type
我们去看源码发现type就分为四种
AlarmManager.ELAPSED_REALTIME
状态值为3,
在指定的延时过后,发送广播,但不唤醒设备(闹钟在睡眠状态下不可用)。如果在系统休眠时闹钟触发,不会激活设备执行事件。AlarmManager.ELAPSED_REALTIME_WAKEUP
状态值为2,
顾名思义,在指定的延时过后,发送广播,如果设备休眠就会唤醒设备,发出广播执行事件AlarmManager.RTC
状态值为1,
该状态下闹钟使用绝对时间,也就是指定当系统调用System.currentTimeMillis()方法返回的值与triggerAtTime相等时启动opera