android – 无法检查AlarmManager是否设置了闹钟

android – 无法检查AlarmManager是否设置了闹钟,第1张

概述我正在检查AlarmManager中是否已经使用 this answer设置闹钟. 以下是我的代码段. boolean alarmUp = (PendingIntent.getBroadcast(MainActivity.this, 0, new Intent(MainActivity.this, AlarmReceiver.class), PendingIntent.FLAG_NO_C 我正在检查AlarmManager中是否已经使用 this answer设置了闹钟.

以下是我的代码段.

boolean alarmUp = (PendingIntent.getbroadcast(MainActivity.this,new Intent(MainActivity.this,AlarmReceiver.class),PendingIntent.FLAG_NO_CREATE) != null);if (alarmUp) {    // alarm is set; do some stuff}Intent alarmIntent = new Intent(MainActivity.this,AlarmReceiver.class);final PendingIntent pendingIntent = PendingIntent.getbroadcast(MainActivity.this,alarmIntent,PendingIntent.FLAG_UPDATE_CURRENT);AlarmManager manager = (AlarmManager) getSystemService(Context.ALARM_SERVICE);manager.setInexactRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(),10 * 1000,pendingIntent);

但是,alarmUp始终被设置为true.也就是说,无论我是否设置闹钟,每当我重新启动我的应用程序,它告诉我,alarmUp是真的(我正在通过制作一个吐司)来检查.

请帮忙我出错了.

解决方法 为了使此检查正常工作,您需要确保PendingIntent仅在报警设置时才存在.你可以做两件事来确保是这样的:

1)测试代码时,请确保卸载应用程序,然后在测试之前重新安装应用程序.卸载您的应用程序将删除您的应用程序可能已创建的待处理的任何PendingIntent.

2)取消闹铃时,请确认您也取消了PendingIntent.你可以这样做

Intent alarmIntent = new Intent(MainActivity.this,AlarmReceiver.class);final PendingIntent pendingIntent =           PendingIntent.getbroadcast(MainActivity.this,PendingIntent.FLAG_NO_CREATE);if (pendingIntent != null) {    pendingIntent.cancel();}
总结

以上是内存溢出为你收集整理的android – 无法检查AlarmManager是否设置了闹钟全部内容,希望文章能够帮你解决android – 无法检查AlarmManager是否设置了闹钟所遇到的程序开发问题。

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

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

原文地址:https://54852.com/web/1132824.html

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

发表评论

登录后才能评论

评论列表(0条)

    保存