android 之AlarmManager 系统闹钟 (2)

转载 2016年08月31日 16:14:47

周期发送

我们已经完成了一个一次性的告警小例子,现在我们要实现一个重复周期性告警的小例子。代码如下:

private static int REQUEST_REPEAT_CODE = REQUEST_CODE + 1; 

public void sendRepeatingAlarm(int intervalSecs){        
    Calendar cal = Utils.getTimeAfterInSecs(10); 
    mReport.reportBack(tag, "测试重复alarm,间隔时间" + intervalSecs + "秒,首次触发时间"
            + Utils.getDateTimeString(cal));
 
    
    Intent intent = new Intent(mContext,TestReceiver.class); 
    intent.putExtra("message", "Repeat alarm" );      
    PendingIntent pi = PendingIntent.getBroadcast(mContext, REQUEST_REPEAT_CODE, intent, 0);

    AlarmManager am = (AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE);
    am.setRepeating(AlarmManager.RTC_WAKEUP,
            cal.getTimeInMillis(), 
            intervalSecs * 1000, 
            pi);
        

一旦我们通过告警管理器的setRepeating()设置周期发送的告警,即时关闭APP,告警管理器仍会继续按期发送,必须通过告警管理器进行关闭。

取消告警

取消alarm的代码如下:

public void cancelRepeatingAlarm(){ 
    mReport.reportBack(tag, "停止重复alarm"); 
    Intent intent = new Intent(mContext,TestReceiver.class);
    PendingIntent pi = PendingIntent.getBroadcast(mContext, REQUEST_REPEAT_CODE, intent, 0);
    //要取消告警,首先构建一个同样request_code和内容(intent,包括向如同的目标接收器,但不包括extras,因为extras不用于判断intent的唯一性)的pending intent,然后通过告警管理器的cancel()进行删除
    AlarmManager am = (AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE);

    am.cancel(pi); 

 小例子代码在:Pro Android学习:Alarm Manager小例子

Alarmmanager制作简单闹钟功能

代码: activity_main.xml
  • linhaiyun_ytdx
  • linhaiyun_ytdx
  • 2016年09月12日 12:25
  • 1005

Android,AlarmManager设置多个闹钟相关问题

Android利用AlarmManager来实现多个闹钟功能,其实很简单,网上有很多关于AlarmManager类的介绍,写的很详细,我这里不做过多描述了,下面来说下我工作中遇到的问题吧。 可能大家...
  • yangge00123
  • yangge00123
  • 2015年06月15日 22:47
  • 2105

Android AlarmManager加入与取消闹钟提醒, Notification不显示的问题

关于日程提醒,用Android系统的AlarmManager,将提醒时间加入系统闹钟并同广播关联,在闹钟到点提醒时,触发广播,然后弹出通知栏通知日程,以下为设置闹钟的代码 private void ...
  • androidforwell
  • androidforwell
  • 2016年12月16日 18:47
  • 4670

AlarmManager闹钟 延迟响应

项目做一个闹钟,需要闹钟可以在时间点准时响应。当闹钟设立数量较少的时候,还算比较可靠,基本都能准时响应。但如果app设立的闹钟的过多,就会有一些闹钟发生延时响应的bug,有时会晚几秒,有时会晚几分钟。...
  • pashanhuxp
  • pashanhuxp
  • 2015年07月30日 18:41
  • 2413

Android基础入门教程——10.5 AlarmManager(闹钟服务)

本节带来的Android中的AlarmManager(闹钟服务),听名字我们知道可以通过它开发手机闹钟类的APP, 而在文档中的解释是:在特定的时刻为我们广播一个指定的Intent,简单说就是我们自...
  • zpj779878443
  • zpj779878443
  • 2015年10月26日 14:22
  • 14228

关于AlarmManager设置重复闹钟延迟的问题

AlarmManager,闹钟
  • clzh2013
  • clzh2013
  • 2016年12月26日 09:55
  • 633

Android闹钟AlarmManager-通知NotificationManager-自定义通知栏

一:闹钟AlarmManager和通知NotificationManager
  • luz682328zul
  • luz682328zul
  • 2017年02月15日 20:47
  • 892

Android中AlarmManager详解以及利用PendingIntent设置闹钟

AlarmManager是提供一种访问系统闹钟服务的方式,允许你去设置在将来的某个时间点去执行你的应用程序。当你的闹钟响起(时间到)时,在它上面注册的一个意图(Intent)将会被系统以广播发出,然后...
  • qq_28330221
  • qq_28330221
  • 2017年03月12日 12:27
  • 3623

android AlarmManager详解,Alarm的设定和取消。

设定alarm的话,大概需要用到如下几步: 1.创建一个Intent 2.创建一个PendingIntent 3.得到ALARM_SERVICE的AlarmManager 4....
  • lisineng
  • lisineng
  • 2015年03月27日 10:43
  • 7438

Android提供的系统服务之--AlarmManager(闹钟服务)

本节引言: 本节主要介绍的是Android系统服务中的---AlarmManager(闹钟服务), 除了开发手机闹钟外,更多的时候是作为一个全局的定时器,通常与Service 结合,在特定时间启...
  • syf6568362
  • syf6568362
  • 2015年12月25日 09:41
  • 2723
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 之AlarmManager 系统闹钟 (2)
举报原因:
原因补充:

(最多只允许输入30个字)