从 Android 中的待处理意图更新警报

发布于 2024-10-09 11:04:41 字数 344 浏览 1 评论 0原文

我正在开发一个闹钟项目,我想编辑我已经设置的闹钟。 当我编辑闹钟时,闹钟时间会更新,但我使用 putExtra() 发送的值不会改变。我正在使用 PendingIntent.FLAG_ONE_SHOT 标志。

但是当我设置标志 PendingIntent.FLAG_UPDATE_CURRENT 时,所有 putExtra() 值也会发生变化,但现在的问题是,当我单击停止按钮和 finish()< /code> 它再次调用当前活动。

意味着当我完成活动时,当我完成当前活动时,它会在单击按钮时再次调用。 请帮我。 提前致谢。

I am working on an Alarm Clock project and i want to edit my already set Alarm.
when I edit alarm then alarm time is updated but values that I send by using putExtra() are not changing. I am using PendingIntent.FLAG_ONE_SHOT flag.

But when I set flag PendingIntent.FLAG_UPDATE_CURRENT all putExtra() values are also change but now problem is that, when i click on stop button and finish() the current activity it calls again.

means when I go to finish the activity it calls again on button click while I am finishing current activity.
please help me.
Thanks in advance.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

仙气飘飘 2024-10-16 11:04:41

我在 AlarmManager 中更新 PendingIntent 的首选方法是取消它并重新设置它
不要忘记取消:

1) AlarmManager.cancel(pendingIntent) 具有与您的挂起意图匹配的pendingIntent(相同的类,相同的操作......但不关心额外的信息,请参阅IntentFilter)
2) pendingIntent.cancel();
3) pendingIntent = new PendingIntent() ...并进行其他设置
4) AlarmManager.set(... 提供新的 PendingIntent

My prefered way to update a PendingIntent in AlarmManager is to Cancel it and re-set it
do not forget to cancel :

1) AlarmManager.cancel(pendingIntent) with a pendingIntent that match your pending intent (same class , same action ... but do not care about extra see IntentFilter)
2) pendingIntent.cancel();
3) pendingIntent = new PendingIntent() ... and do other settings
4) AlarmManager.set(... to provide new PendingIntent

二手情话 2024-10-16 11:04:41

每个警报都有其唯一的标识符,如果要更新警报,可以创建具有相同 UNIQUE_ID 的新警报。

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

检查此答案

Each alarm has its unique identifier, if you want to update an alarm, you can create a new one with the same UNIQUE_ID.

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

Check this answer

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文