码迷,mamicode.com
首页 > 其他好文 > 详细

简单 闹钟 实现 原理

时间:2014-12-03 19:23:48      阅读:176      评论:0      收藏:0      [点我收藏+]

标签:android 闹钟 原理   alarmmanager   

参考 自文献  http://jakend.iteye.com/blog/1980842

简单 闹钟 原理 就是 利用 AlarmManager  设置一个时间, 时间到了  发出一个广播,接收到广播提示时间到了。

关键就是  拿到AlarmManager  对象 

         AlarmManager manager = (AlarmManager)getSystemService(ALARM_SERVICE);

 看下manager 的方法

bubuko.com,布布扣

bubuko.com,布布扣bubuko.com,布布扣

关键方法  就是  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

  1. Intent intent = new Intent(MainActivity.this, AlarmReceiver.class);  
  2. PendingIntent sender = PendingIntent.getBroadcast(MainActivity.this0, intent, 0);  

那 了解到现在,基本原理 已经很清楚了,  下面 就是代码组装一下


bubuko.com,布布扣

  通过manager  对象 给 sender 意图 注册一个重复 触发事件,一旦触发  就会被 AlarmReciever 接收到。



完整DEMO 下载

 

简单 闹钟 实现 原理

标签:android 闹钟 原理   alarmmanager   

原文地址:http://blog.csdn.net/u011733020/article/details/41699319

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!