Alarm

先来段准备知识:

1: BroadcastReceiver:

BroadcastReceiver 一般可作为一个轻量级的跨进程服务,如放点Toast啥的。它相当于在全局消息中心注册一个接受器,如果有相关的消息(某个应用程序发给你的),便会转到你名下来的onReceive。这个receive 和你的activity 是不同进程的,service也是如此。题外话,我总觉得Android的这套消息机制有点过分强大了,我相信系统开销应该会有不少。

当然他还有一个用法是接送系统消息,这个以后再说,如来电,SD卡插入....。

要使用BroadcastReceiver,不要忘记注册它。

<receiver android:name="OneShotAlarm" android:process=":remote" />

呼叫它:

Intent intent = new Intent(Alarm.this, OneShotAlarm.class);
sendBroadcast(intent);

2: 得到系统时间

System.currentTimeMillis()

好开始Alarm:

关键代码如下:

PendingIntent sender = PendingIntent.getBroadcast(AlarmController.this,
0, intent, 0); // 得到PendingIntent 对象

AlarmManager am = (AlarmManager)getSystemService(ALARM_SERVICE);
am.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); // 一次
OR

am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP,
firstTime, 15*1000, sender); // 反复

OR

am.cancel(sender); // 取消

更多相关文章

  1. Android用户输入系统和移植内容概要
  2. android调用系统相机拍摄多张照片
  3. iPod Touch也将支持运行Android系统
  4. Android应用程序线程的消息循环模型
  5. android webview 访问https页面 SslError 处理
  6. cocos2d-x android 字体的设置
  7. Android基于MQTT实现发布消息与监听topic接收消息
  8. Android如何运行真机在eclipse上调试应用?
  9. Android(安卓)应用开发特色

随机推荐

  1. android 蓝牙 获取蓝牙地址名字
  2. Android代码调试报错
  3. cordova打包app环境搭建
  4. Professional Android(安卓)2 Developmen
  5. 二维码:问题和资料
  6. Android开发之《Android应用开发揭秘》UI
  7. [Unity for android]Unity在安卓机上调试
  8. Android(安卓)Studio编译时的那些问题
  9. Android学习记录:界面设计
  10. Android(安卓)Content Provider的共享数