如何取消AlarmManager在预定的时间 [英] How to Cancel AlarmManager on a Scheduled time
本文介绍了如何取消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);
意图intentForCancelling =新的意图(背景下,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屋!
查看全文