首页 > 代码库 > 简单 闹钟 实现 原理
简单 闹钟 实现 原理
参考 自文献 http://jakend.iteye.com/blog/1980842
简单 闹钟 原理 就是 利用 AlarmManager 设置一个时间, 时间到了 发出一个广播,接收到广播提示时间到了。
关键就是 拿到AlarmManager 对象
AlarmManager manager = (AlarmManager)getSystemService(ALARM_SERVICE);
看下manager 的方法
关键方法 就是 set 方法 设置 日期
第一个 set 方法 中 long 值 triggerAtMillis 这个是触发时间 ,表示 到了这个时间 就会提示
第二个 set 方法中的参数 ong triggerAtMillis触发, long intervalMillis 间隔 ,表示 可以以 intervalMillis 这个周期 间隔 触发事件
type 这里 一共有四种类型 分别 如下
AlarmManager.RTC,硬件闹钟,不唤醒手机(也可能是其它设备)休眠;当手机休眠时不发射闹钟。
AlarmManager.RTC_WAKEUP,硬件闹钟,当闹钟发躰时唤醒手机休眠;
AlarmManager.ELAPSED_REALTIME,真实时间流逝闹钟,不唤醒手机休眠;当手机休眠时不发射闹钟。
AlarmManager.ELAPSED_REALTIME_WAKEUP,真实时间流逝闹钟,当闹钟发躰时唤醒手机休眠;
RTC闹钟和ELAPSED_REALTIME最大的差别就是前者可以通过修改手机时间触发闹钟事件,后者要通过真实时间的流逝,即使在休眠状态,时间也会被计算。
两个set 方法 还有一个公共参数 就是一个 PendingIntent 一个延期意图。
这样可以 很容易拿到 intent
- Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);
- PendingIntent sender = PendingIntent.getBroadcast(MainActivity.this, 0, intent, 0);
那 了解到现在,基本原理 已经很清楚了, 下面 就是代码组装一下
完整DEMO 下载
简单 闹钟 实现 原理