Android-AlarmManager(全局定时器/闹钟)
http://www.eoeandroid.com/thread-203518-1-1.html
http://www.eoeandroid.com/thread-203549-1-1.html
http://www.eoeandroid.com/thread-203444-1-1.html
//操作:发送一个广播,广播接收后Toast提示定时操作完成 Intent intent =new Intent(Main.this, alarmreceiver.class); intent.setAction("short"); PendingIntent sender= PendingIntent.getBroadcast(Main.this, 0, intent, 0); //设定一个五秒后的时间 Calendar calendar=Calendar.getInstance(); calendar.setTimeInMillis(System.currentTimeMillis()); calendar.add(Calendar.SECOND, 5); AlarmManager alarm=(AlarmManager)getSystemService(ALARM_SERVICE); alarm.set(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), sender); //或者以下面方式简化 //alarm.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis()+5*1000, sender); Toast.makeText(Main.this, "五秒后alarm开启", Toast.LENGTH_LONG).show();
注意:receiver记得在manifest.xml注册
public static class alarmreceiver extends BroadcastReceiver{ @Overridepublic void onReceive(Context context, Intent intent) { // TODO Auto-generated method stub if(intent.getAction().equals("short")){ Toast.makeText(context, "short alarm", Toast.LENGTH_LONG).show(); }else{ Toast.makeText(context, "repeating alarm", Toast.LENGTH_LONG).show(); } } }
(2)周期性的执行某项操作
Intent intent =new Intent(Main.this, alarmreceiver.class); intent.setAction("repeating"); PendingIntent sender=PendingIntent .getBroadcast(Main.this, 0, intent, 0); //开始时间 long firstime=SystemClock.elapsedRealtime(); AlarmManager am=(AlarmManager)getSystemService(ALARM_SERVICE); //5秒一个周期,不停的发送广播 am.setRepeating(AlarmManager.ELAPSED_REALTIME_WAKEUP , firstime, 5*1000, sender);
AlarmManager的setRepeating()相当于Timer的Schedule(task,delay,peroid);有点差异的地方时Timer这个方法是指定延迟多长时间以后开始周期性的执行task;AlarmManager的取消:(其中需要注意的是取消的Intent必须与启动Intent保持绝对一致才能支持取消AlarmManager)
Intent intent =new Intent(Main.this, alarmreceiver.class); intent.setAction("repeating"); PendingIntent sender=PendingIntent .getBroadcast(Main.this, 0, intent, 0); AlarmManager alarm=(AlarmManager)getSystemService(ALARM_SERVICE); alarm.cancel(sender);
转载于:https://www.cnblogs.com/vus520/archive/2012/09/27/2705202.html
Android-AlarmManager(全局定时器/闹钟)相关推荐
- 我的Android进阶之旅------gt;Android使用AlarmManager全局定时器实现定时更换壁纸
该DEMO将会通过AlarmManager来周期的调用ChangeService,从而让系统实现定时更换壁纸的功能. 更换壁纸的API为android.app.WallpaperManager,它提供 ...
- Android---AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作
AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟.通过对它的使用,个人觉得叫全局定时器比较合适,其实它的作用和Timer有点相似.都有两种相似的用法:(1)在指定时长后执行某项操 ...
- android之AlarmManager 全局定时器
AlarmManager实质是一个全局的定时器,是Android中常用的一种系统级别的提示服务,在指定时间或周期性启动其它组件(包括Activity,Service,BroadcastReceiver ...
- 我的Android进阶之旅------Android使用AlarmManager全局定时器实现定时更换壁纸
该DEMO将会通过AlarmManager来周期的调用ChangeService,从而让系统实现定时更换壁纸的功能. 更换壁纸的API为android.app.WallpaperManager,它提供 ...
- android AlarmManager实现定时器
能实现定时器的方法有好几种,而利用AlarmManager发送广播的方式实现相对来说还是很靠谱的,长期在后台运行会被系统列入高耗电APP,系统会自动停掉广播的发送,除非把APP加入系统白名单,上代码: ...
- android 闹钟提醒实现方法,Android开发实例之闹钟提醒
本实例通过TimePickerDialog时间选择对话框让用户设置闹钟.并通过AlarmManager全局定时器在指定的时间启动闹钟Activity . 程序执行效果图: 实例代码: package ...
- Android开发实例之闹钟提醒
本实例通过TimePickerDialog时间选择对话框让用户设置闹钟,并通过AlarmManager全局定时器在指定的时间启动闹钟Activity . 程序运行效果图: 实例代码: package ...
- android 闹钟锁屏页,Android AlarmManager 锁屏显示闹钟
锁屏状态下点亮屏幕,并弹出闹钟提示信息,可以在锁屏界面上取消闹钟:使用广播接收闹钟定时: 下面是例子里的核心代码如下 android 设置定时闹钟(包括提醒一次和循环提醒): Intent inten ...
- Android中的定时器AlarmManager
AlarmManager的常用方法有三个: (1)set(int type,long startTime,PendingIntent pi): 该方法用于设置一次性闹钟,第一个参数表示 ...
- Android中设置定时闹钟以及AlarmManager详解
AlarmManager是提供一种访问系统闹钟服务的方式,允许你去设置在将来的某个时间点去执行你的应用程序.当你的闹钟响起(时间到)时,在它上面注册的一个意图(Intent)将会被系统以广播发出,然后 ...
最新文章
- “5G 消息”APP 短暂上线,它会干掉微信还是变成另一个飞信?
- 面试中经常出现的算法1(整理)
- Winform将网页生成图片
- ios时间相差多少天_iOS 计算某个时间到现在是多少月/天/时
- 【bzoj1050】[HAOI2006]旅行comf 并查集
- markdown公式编辑参考
- Java用itext工具根据模板生成PDF
- 医院药品管理系统java sql_医院医药管理系统的设计与实现(JSP,SQLServer)
- SQL 同比环比增长率计算
- 51单片机外部中断实例
- 感性电路电流计算_家用空开怎么计算?怎么选择?
- 如何解读Linux Kernel OOPS信息
- 济南推动大数据产业发展 居民生活将有新变化
- 软件需求分析——需求基础
- [已解决]关于win10计算器无法使用的问题
- Spring解决跨域问题方案
- uploadify多个文件上传,提示超过最多限制
- 集装箱人工智能为堆场智能化升级,自动化集装箱识别, 数字化录入杜绝出错, 全自动化一站式进出闸,智能化提箱放箱,智慧堆场无人堆场
- C#中Listview刷新事件的BUG
- JavaScript 实现页面滚动动画