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小例子

相关文章推荐

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

本节引言: 本节主要介绍的是Android系统服务中的---AlarmManager(闹钟服务), 除了开发手机闹钟外,更多的时候是作为一个全局的定时器,通常与Service 结合,在特定时间启...

AlarmManager系统闹钟

AlarmManager介绍 AlarmManager这个类提供对系统闹钟服务的访问接口。你可以为你的应用设定一个在未来某个时间唤醒的功能。当闹钟响起,实际上是系统发出了为这个闹钟注册的广播,会自动开...
  • l_user
  • l_user
  • 2016年03月18日 23:11
  • 281

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

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

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

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

Android---AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作

http://www.cnblogs.com/jico/archive/2010/11/03/1868361.html AlarmManager的使用机制有的称呼为全局定时器,有的称呼为闹钟。通过对...

android闹钟AlarmManager的使用

AlarmManager的作用文档中的解释是:在特定的时刻为我们广播一个指定的Intent。简单的说就是我们设定一个时间,然后在该时间到来时,AlarmManager为我们广播一个我们设定的Inten...
  • icewst
  • icewst
  • 2012年09月10日 10:14
  • 441

Android闹钟 AlarmManager基础

本次主要讲述一下android 闹钟。 AlarmManager对系统提供闹钟服务,能在设定时间唤醒应用。 先看设置只响应一次的代码: Intent intent = new Intent(...

Android---AlarmManager闹钟设置

本片文章主要介绍闹钟的管理,使用到了BroadcastReceiver。 1.在主界面上放置两个按钮,一个用于设置闹钟,一个用于取消闹钟。2.自定义BroadcastReceiver用于响应闹钟时间到...

Android闹钟 AlarmManager的使用和通知的使用

package com.zking.myalarm; import java.util.Calendar; import java.util.Date; import java.util.Loc...

Android之AlarmManager(全局定时器/闹钟)指定时长或以周期形式执行某项操作

1、AlarmManager,顾名思义,就是“提醒”,是Android中常用的一种系统级别的提示服务,可以实现从指定时间开始,以一个固定的间隔时间执行某项操作,所以常常与广播(Broadcast)连用...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:android 之AlarmManager 系统闹钟 (2)
举报原因:
原因补充:

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