- 浏览: 39557 次
- 性别:
- 来自: 北京
文章分类
最新评论
AlarmManager的作用文档中的解释是:在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Intent。
对应AlarmManager更深层的了解可以参考:
http://www.programbbs.com/doc/5888.htm
http://jinguo.iteye.com/blog/799778
android提供了四种类型的闹钟:
❑ ELAPSED_REALTIME
在指定的延时过后,发送广播,但不唤醒设备。
❑ ELAPSED_REALTIME_WAKEUP
在指定的演示后,发送广播,并唤醒设备
延时是要把系统启动的时间SystemClock.elapsedRealtime()算进去的,具体用法看代码。
❑ RTC
在指定的时刻,发送广播,但不唤醒设备
❑ RTC_WAKEUP
在指定的时刻,发送广播,并唤醒设备
AlarmManager提供的方法:
❑ void set(int type, long triggerAtTime, PendingIntent operation)
设置一个闹钟
❑ void setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
设置一个会重复的闹钟
❑ void setInexactRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
设置一个重复闹钟的不精确版本,它相对而言更节能(power-efficient)一些,因为系统可能会将几个差不多的闹钟合并为一个来执行,减少设备的唤醒次数。
内置的几个interval为:
INTERVAL_FIFTEEN_MINUTES
INTERVAL_HALF_HOUR
INTERVAL_HOUR
INTERVAL_HALF_DAY
INTERVAL_DAY
如果你将其设为DAY,那么可能这一天中的所有闹钟都会被合并掉。
❑ void cancel(PendingIntent operation)
取消一个设置的闹钟
❑ void setTimeZone(String timeZone)
设置系统的默认时区。需要android.permission.SET_TIME_ZONE权限
PendingIntent:简单的说就是在Intent上在加个指定的动作。Intent的话,我们还需要在执行startActivity、startService或sendBroadcast才能使Intent有用。而PendingIntent的话就是将这个动作包含在内了,如PendingIntent.getBroadcast就包含了sendBroadcast的动作。
5s后发送指定广播
5s后发送指定广播,然后每个10秒重复发送广播
取消一个闹钟
对应AlarmManager更深层的了解可以参考:
http://www.programbbs.com/doc/5888.htm
http://jinguo.iteye.com/blog/799778
android提供了四种类型的闹钟:
❑ ELAPSED_REALTIME
在指定的延时过后,发送广播,但不唤醒设备。
❑ ELAPSED_REALTIME_WAKEUP
在指定的演示后,发送广播,并唤醒设备
延时是要把系统启动的时间SystemClock.elapsedRealtime()算进去的,具体用法看代码。
❑ RTC
在指定的时刻,发送广播,但不唤醒设备
❑ RTC_WAKEUP
在指定的时刻,发送广播,并唤醒设备
AlarmManager提供的方法:
❑ void set(int type, long triggerAtTime, PendingIntent operation)
设置一个闹钟
❑ void setRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
设置一个会重复的闹钟
❑ void setInexactRepeating(int type, long triggerAtTime, long interval, PendingIntent operation)
设置一个重复闹钟的不精确版本,它相对而言更节能(power-efficient)一些,因为系统可能会将几个差不多的闹钟合并为一个来执行,减少设备的唤醒次数。
内置的几个interval为:
INTERVAL_FIFTEEN_MINUTES
INTERVAL_HALF_HOUR
INTERVAL_HOUR
INTERVAL_HALF_DAY
INTERVAL_DAY
如果你将其设为DAY,那么可能这一天中的所有闹钟都会被合并掉。
❑ void cancel(PendingIntent operation)
取消一个设置的闹钟
❑ void setTimeZone(String timeZone)
设置系统的默认时区。需要android.permission.SET_TIME_ZONE权限
Java代码
- // 首先创建Receiver
- public class AlarmReceiver extends BroadcastReceiver {
- @Override
- public void onReceive(Context context, Intent intent) {
- Toast.makeText(context, "alarm", Toast.LENGTH_SHORT).show();
- }
- }
// 首先创建Receiver public class AlarmReceiver extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Toast.makeText(context, "alarm", Toast.LENGTH_SHORT).show(); } }
- // manifest中申明,并不需要intent-filter,我们是明确指定发到哪个receiver的
- <receiver android:name="yuan.receivers.AlarmReceiver" />
// manifest中申明,并不需要intent-filter,我们是明确指定发到哪个receiver的 <receiver android:name="yuan.receivers.AlarmReceiver" />
PendingIntent:简单的说就是在Intent上在加个指定的动作。Intent的话,我们还需要在执行startActivity、startService或sendBroadcast才能使Intent有用。而PendingIntent的话就是将这个动作包含在内了,如PendingIntent.getBroadcast就包含了sendBroadcast的动作。
5s后发送指定广播
Java代码 AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
- Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
- int requestCode = 0;
- PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(),
- requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- // 5秒后发送广播,只发送一次
- int triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000;
- alarmMgr.set(AlarmManager.ELAPSED_REALTIME, triggerAtTime, pendIntent);
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class); int requestCode = 0; PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(), requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT); // 5秒后发送广播,只发送一次 int triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000; alarmMgr.set(AlarmManager.ELAPSED_REALTIME, triggerAtTime, pendIntent);
5s后发送指定广播,然后每个10秒重复发送广播
- AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
- Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
- int requestCode = 0;
- PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(),
- requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- // 5秒后发送广播,然后每个10秒重复发广播。广播都是直接发到AlarmReceiver的
- int triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000;
- int interval = 10 * 1000;
- alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, interval, pendIntent);
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE); Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class); int requestCode = 0; PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(), requestCode, intent, PendingIntent.FLAG_UPDATE_CURRENT); // 5秒后发送广播,然后每个10秒重复发广播。广播都是直接发到AlarmReceiver的 int triggerAtTime = SystemClock.elapsedRealtime() + 5 * 1000; int interval = 10 * 1000; alarmMgr.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP, triggerAtTime, interval, pendIntent);
取消一个闹钟
Java代码
AlarmManager alarmMgr = (AlarmManager) getSystemService(Context.ALARM_SERVICE);
- Intent intent = new Intent(getApplicationContext(), AlarmReceiver.class);
- PendingIntent pendIntent = PendingIntent.getBroadcast(getApplicationContext(),
- 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
- // 与上面的intent匹配(filterEquals(intent))的闹钟会被取消
- alarmMgr.cancel(pendIntent);
发表评论
-
设置内存卡资源图片
2013-03-12 10:11 479String imageDir = Environment. ... -
android字体过长渐变效果
2013-01-30 15:59 663使用 android:singleLine="t ... -
自定义之checkbox
2013-01-08 09:16 614android中自定义checkbox大小和图片 (转) ... -
Android中Activity,View,Window之间的关系(转)
2012-12-03 09:11 11251.首先来看Activity中的attach()方法,在调用o ... -
Dialog的dismiss和cancel 区别 (转)
2012-12-03 09:13 1845Dialog的dismiss和cancel AlertDial ... -
android应用程序适配在不同的手机上(转)
2012-12-03 09:15 487如何将一个应用程序适 ... -
android 堆栈 清理 (转)
2012-12-03 09:16 664启动任务 当一个activity ... -
Android权限共享UID(转)
2012-12-03 09:16 544共享UID 安装在设备中 ... -
ViewPager+TabHost 实现选项卡页面间滑动(转)
2012-12-04 09:19 915转自http://flycatdeng.iteye.com/b ... -
android扫描商品条形码
2012-12-04 09:19 994(转自http://marshal.easymorse.com ... -
基于Android平台的NFC技术的应用实现 (转)
2012-12-04 09:20 1394转自http://1679554191.iteye.com/b ... -
Android API包名及包的功能的中文介绍
2012-11-30 09:38 971android 包含应用平台和在定义应用程序所用到and ... -
Android 自动解锁 KeyguardManager(键盘管理器)(转)
2012-11-30 09:39 931写一个Activity启动该服务即可,用一个线程开启服务, ... -
Android之Service与IntentService的比较 .
2012-11-30 09:41 676转自http://blog.csdn.net/zhf19890 ... -
ActivityGroup之生命周期
2012-12-04 09:20 781Activity的生命周期已经 ... -
ActivityGroup之切换activity
2012-12-04 09:20 660前言 在一个主界面中做Activity切换一般都会用T ... -
Android SurviceView的触控和轨迹球事件 .
2012-12-05 14:10 1056SurfaceView 的触控和轨迹球事件 1,改开始什 ... -
home键屏蔽
2012-12-05 14:11 6161. 在activity中加上这段代码(重写onAttache ... -
彻底删除某个APK的方法
2012-12-05 14:11 10601. 连接ADB, 执行adb remount 2. 执行a ... -
android常用命令
2012-12-05 14:11 844首先配置好环境变量,有两种方法 1,在path里面配置 sdk ...
相关推荐
android安卓闹铃服务AlarmManager的使用
Andorid AlarmManager的使用,通过这个实例可以变换实现闹钟功能
主要介绍了Android开发之AlarmManager的用法,是Android应用开发中非常实用的技能,需要的朋友可以参考下
使用AlarmManager多次定时提醒 实现多次定时提醒的原理是: 在添加时间点后, 需要将所添加的时间点保存在文件或数据库中。
android AlarmManager 多个 定时 重复提醒,我这篇博文的源码。
Android中使用AlarmManager设置闹钟示例代码
AlarmManager提供了访问系统闹钟的服务。它允许你安排你的应用在未来某个时间点运行。这就相当于定时任务。对于少于60s的定时任务,不推荐使用AlarmManager,可以使用更高效的的Handler来处理频发的任务。
在Android平台,如何使用AlarmManager启动广播BroeadReceiver 、服务Service 、页面Activity。
http://blog.csdn.net/two_water/article/details/52004414 博客Demo
Android AlarmManager
Android 后台运行 定时器 AlarmManager Service
本示例通过AlarmManager 全局定时器 实现 定时更换壁纸
使用AlarmManager,双进程守护,MarsDaemon第三方库,AppWiget保活
Android_AlarmManager一些简单的操作
使用AlarmManager实现Android定时任务(闹钟),解决了Android版本更新导致的定时不准确问题。Demo源码
本文将讲解一下如何使用AlarmManager实现定时提醒功能。 闹钟配置 周期闹钟 Intent intent = new Intent(); intent.setAction(GlobalValues.TIMER_ACTION_REPEATING); PendingIntent sender = PendingIntent....
AlarmManager 闹铃(支持重启) 设置多个闹铃 备注详细
Android下AlarmManager的小闹钟程序,初学可以看看
app进程中,需要实现一个定时任务,只要设备处于开机状态,每隔半个小时,就需要定时向服务器上传一次位置信息,并且只要是有网络和获取到GPS信号,进程不能死,如果进程死掉了,需要自动重启。
本示例为女性贴身看护 程序 运用AlarmManager、DatePicker、TimePicker提供了以下功能: 1. 设置前一次MC的日期 2. 设置MC的周期天数 3. 设置每日提醒的时间