如何取消AlarmManager在预定的时间 [英] How to Cancel AlarmManager on a Scheduled time

查看:276
本文介绍了如何取消AlarmManager在预定的时间的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我怎么能删除一个AlarmManager在预定的时间,这是已经开始了。我入手一部AlarmManager这样。

我要5小时后取消。我怎样才能做到这一点?

  AlarmManager服务=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
意图I =新的意图(背景下,MyStartServiceReceiver.class);
PendingIntent未决= PendingIntent.getBroadcast(背景下,0,I,PendingIntent.FLAG_CANCEL_CURRENT);
日历CAL = Calendar.getInstance();
cal.add(Calendar.SECOND,30);
service.setInexactRepeating(AlarmManager.RTC_WAKEUP,cal.getTimeInMillis(),REPEAT_TIME,待定);
 

解决方案

设置其他报警5小时从现在开始。当这种报警器报警熄灭然后取消第一时间报警。

  AlarmManager服务=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
意图int​​entForCancelling =新的意图(背景下,ReceiverForCancelling.class);
PendingIntent未决= PendingIntent.getBroadcast(上下文,0,intentForCancelling,
PendingIntent.FLAG_CANCEL_CURRENT);
日历CAL = Calendar.getInstance();
cal.roll(Calendar.HOUR_OF_DAY,5);
service.set(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(),申请中)
 

和,从 ReceiverForCancelling 则可以取消第一个报警。
:

  AlarmManager服务=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
意向意图=新的意图(背景下,ReceiverForCancelling.class);
PendingIntent未决= PendingIntent.getBroadcast(背景下,0,意图,
PendingIntent.FLAG_CANCEL_CURRENT);
service.cancel(待定);
 

How can I cancel one AlarmManager on a scheduled time, which was already started. I am starting one AlarmManager like this.

I want to cancel it after 5 hours. How can I do this?

AlarmManager service = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent i = new Intent(context, MyStartServiceReceiver.class);
PendingIntent pending = PendingIntent.getBroadcast(context, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
Calendar cal = Calendar.getInstance();
cal.add(Calendar.SECOND, 30);
service.setInexactRepeating(AlarmManager.RTC_WAKEUP, cal.getTimeInMillis(), REPEAT_TIME, pending);

解决方案

set a another alarm for 5 hours from now. when this alarm alarm goes off then cancel the first alarm.

AlarmManager service = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intentForCancelling = new Intent(context, ReceiverForCancelling.class);
PendingIntent pending = PendingIntent.getBroadcast(context, 0, intentForCancelling,
PendingIntent.FLAG_CANCEL_CURRENT);
Calendar cal = Calendar.getInstance();
cal.roll(Calendar.HOUR_OF_DAY, 5);
service.set(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis(), pending)

and, from ReceiverForCancelling you can cancel the first alarm.
edit::

AlarmManager service = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
Intent intent = new Intent(context, ReceiverForCancelling.class);
PendingIntent pending = PendingIntent.getBroadcast(context, 0, intent,
PendingIntent.FLAG_CANCEL_CURRENT);
service.cancel(pending);

这篇关于如何取消AlarmManager在预定的时间的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆