android 监听闹钟状态,android – 有没有办法检查是否已经设置了闹钟?

首先,有关如何访问以前创建的警报的一点教程:

您可以通过创建每个具有唯一的ID来区分闹钟,例如:

Intent intent = new Intent(this, AlarmReceiverActivity.class);

PendingIntent pi = PendingIntent.getActivity(this,UNIQUE_ID_GOES_HERE, intent, 0);

AlarmManager am = (AlarmManager)getSystemService(Activity.ALARM_SERVICE);

am.set(AlarmManager.RTC_WAKEUP, triggerAtMillis ,pi);

当您想要访问此警报时,您必须创建具有相同唯一身份的相同的PendingIntent。例如,以下内容只会访问您使用PendingIntent id 1234创建的警报。然后将取消之前的警报并重置。

Intent intent = new Intent(this, AlarmReceiverActivity.class);

PendingIntent pi = PendingIntent.getBroadcast(this, 1234, intent, 0);

AlarmManager am = (AlarmManager) getSystemService(ALARM_SERVICE);

am.set(AlarmManager.RTC_WAKEUP, triggerAtMillis ,pi);

这个想法很简单跟踪ID,然后使用它们访问各自的报警。如果您创建多个具有相同ID的警报,则最近的警报将取消以前的警报。

遇到您的主要问题,而不是检查每次启动应用程序时您的闹钟是否处于活动状态,只需在Activity的onCreate()方法中重新设置。与上述相同的待定内容。这样可以节省您检查报警是否先前设置的麻烦。由于您的目标是保持警报的生存,所以每次启动应用程序时,都不会超过以前设置的警报。只需确保使用相同的ID创建您的PendingIntent。

不要忘记检查您的闹钟的时间是否已经通过,以避免尝试设置过去时间的闹钟,这将立即触发。

让我们考虑另一种情况:当您关闭设备时,所有的闹钟将被取消。这不会让你再次重新启动它们。要做到这一点,你将不得不使用BroadcastReceiver。

This answer将帮助您如何做到这一点。只需在上述BroadcastReceiver的onReceive()方法中重新创建您的闹钟。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值