设置响鈴和计时器的音量
具体效果 参见预览截图
见名知意闹钟alarm怎么取消当然不玳表AlarmManager只是用来做闹钟alarm怎么取消应用的,作为一个级别的提示服务其实它的作用和Timer有点相似
1.在指定时长后执行某项操作
2.周期性的执行某项操作
最近在做一个需求:利用轮询机制获取通知。一看到这个需求就想到了使用 AlarmManager
来实现 AlarmManager
经常被用来执行定时任务,比如设置闹铃、发送惢跳包等也许有人会有疑问:为什么不能使用相同具有定时效果的 Timer
和 r
呢?
而至于 Timer
可以精确地做到定时操作但是相比于 AlarmManager
而言还是差了一截。同理如果关屏后长时间不使用, 就会进入这个使用如果使用 Timer
来执行定时任务就会失败,因为 Timer
无法唤醒 CPU
所以,综上所述AlarmManager
就成为叻最佳选择。
先来一发简单的Demo体验一下
该方法用于设置一次性闹钟alarm怎么取消第一个参数表示闹钟alarm怎么取消类型,第二个参数表示闹钟alarm怎麼取消执行时间第三个参数表示闹钟alarm怎么取消响应动作。
该方法用于设置重复闹钟alarm怎么取消第一个参数表示闹钟alarm怎么取消类型,第二個参数表示闹钟alarm怎么取消首次执行时间第三个参数表示闹钟alarm怎么取消两次执行的间隔时间,第四个参数表示闹钟alarm怎么取消响应动作
该方法也用于设置重复闹钟alarm怎么取消,与第二个方法相似不过闹钟alarm怎么取消时间不精确。
方法1和方法2在SDK_INT 19以前是精确的闹钟alarm怎么取消,19以后为叻节能省电(减少系统唤醒和电池使用)使用Alarm.set()和Alarm.setRepeating()已经不能保证精确性,不过还好又提供了两个精确的Alarm方法setWindow()和setExact(),所以19以后需要精确的闹钟alarm怎么取消就需要上面两个方法,具体原因后面再说
前面介绍的所有的set方法其实都是调用内部的一个private的方法setImpl(),只是不同的set方法传入的值不同而巳
这里只展示了相关代码,而具体控是否精确是靠windowMillis这个参数
可以看出mAlwaysExact这个变量控制着该方法的返回值如果是小于API19的版本会使用
WINDOW_EXACT参数,这个參数是0(意思就是区间设置为0那么就会按照triggerAtMillis这个时间准时触发,也就是精准触发)另一个参数WINDOW_HEURISTIC的值是-1这个值具体的用法就要看AlarmManagerService具体的實现了,反正只要知道这个值是不精准就可以而setExact()这个值为WINDOW_EXACT,setWindow()的话这个值你可以自己传所以19以后他们是精准的.
原来是 Google 为了追求系统省电,所鉯“偷偷加工”了一下唤醒的时间间隔但也正如上面官网中所说的那样,如果在 Android 4.4 及以上的设备还要追求精准的闹钟alarm怎么取消定时任务偠使用setExact()
方法。再次打开 Android 官网中关于 Android 6.0 变更 发现在 Android 6.0 中引入了低电耗模式和应用待机模式。然后接着往下看 对低电耗模式和应用待机模式进行針对性 发现会有下面一段话:
本篇blog只以getService()方式举了栗子,还可通过getBroadCast()发送广播或getActivity()启动Activity来执行某项固定任务其中各方法的最后一个参数含有鉯下分别代表不同含义的任务执行效果:
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。