【安卓学习之常见问题】AlarmManager的setRepeating的用法-闹钟/定时器

█【安卓学习之常见问题】AlarmManager的setRepeating的用法-闹钟/定时器

█ 问题:

● 今天打开看了段代码没明白意思,因为没用过,就搜索了解下功能,代码如下:
在这里插入图片描述

        AlarmManager manager = (AlarmManager) getSystemService(ALARM_SERVICE);
        Intent i = new Intent(NOTIFY_ACTION);
        PendingIntent pi = PendingIntent.getBroadcast(this, 0, i, PendingIntent.FLAG_UPDATE_CURRENT);
        manager.setRepeating(AlarmManager.RTC_WAKEUP , System.currentTimeMillis(),  3 * 60 * 1000, pi);

█ 功能:

● AlarmManager
 是Android中常用的一种系统级别的提示服务,在特定的时刻为我们广播一个指定的Intent。
 ● 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)
 用于设置重复闹钟,间隔时间有偏差
 ● 参数int type: 闹钟的类型
 AlarmManager.RTC,硬件闹钟,不唤醒手机(也可能是其它设备)休眠;当手机休眠时不发射闹钟。
 AlarmManager.RTC_WAKEUP,硬件闹钟,当闹钟发躰时唤醒手机休眠;
 AlarmManager.ELAPSED_REALTIME,真实时间流逝闹钟,不唤醒手机休眠;当手机休眠时不发射闹钟。
 AlarmManager.ELAPSED_REALTIME_WAKEUP,真实时间流逝闹钟,当闹钟发躰时唤醒手机休眠;
 ● 参数long startTime: 闹钟的第一次执行时间,以毫秒为单位
 ● 参数long intervalTime:表示两次闹钟执行的间隔时间,以毫秒为单位。
 ● 参数PendingIntent pi: 绑定了闹钟的执行动作,比如发送一个广播、给出提示等等。

█ setRepeating和setInexactRepeating的区别:

● setRepeating:每间隔intervalTime毫秒发送一次 PendingIntent
 ● setInexactRepeating:每间隔大约intervalTime毫秒发送一次 PendingIntent 。在间隔时间上有点误差。

PS:两者的区别在于精确程度,使用setInexactRepeating可以减少电池的消耗,因此优先考虑此方法,对于时间要求比较精准的再考虑使用setRepeating。

█ 总结:

● 由于
 
█ 相关资料:

● 1.2012-10-11 Android中的AlarmManager的使用 - wangxingwu_314的专栏 - CSDN博客
 ● 2.Android AlarmManager – RTC_WAKEUP vs ELAPSED_REALTIME_WAKEUP Dovov编程网
 ● 3.2011-09-04 AlarmManager.RTC和ELAPSED_REALTIME的区别 - 程序人生 - ITeye博客
 ● 4.2017-02-15 AlarmManager.setRepeating的参数问题 - sunny_Harper的博客 - CSDN博客
 ● 5.2015-10-09 android - 安卓AlarmManager.setRepeating()真机运行的结果和设定的循环时间间隔不一致 - SegmentFault 思否
 ● 6.2018-05-08 AlarmManager的setRepeating和setInexactRepeating之间的区别? - 问答 - 云+社区 - 腾讯云

转载请注明出处:
https://blog.csdn.net/ljb568838953/article/details/90691552

  • 3
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值