android– 如何在预定的时间取消AlarmManager

android– 如何在预定的时间取消AlarmManager,第1张

概述如何在已经开始的预定时间取消一个AlarmManager.我正在启动一个这样的AlarmManager.我希望在5小时后取消它.我怎样才能做到这一点?AlarmManagerservice=(AlarmManager)context.getSystemService(Context.ALARM_SERVICE);Intenti=newIntent(context,MyStartServiceRecei

如何在已经开始的预定时间取消一个AlarmManager.我正在启动一个这样的AlarmManager.

我希望在5小时后取消它.我怎样才能做到这一点?

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);

解决方法:

从现在起设置另一个警报5个小时.当此警报警报响起时,取消第一个警报.

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)

并且,从ReceiverForCancelling您可以取消第一个警报.
编辑::

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);
总结

以上是内存溢出为你收集整理的android – 如何在预定的时间取消AlarmManager全部内容,希望文章能够帮你解决android – 如何在预定的时间取消AlarmManager所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1097623.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存