从 Android 中的待处理意图更新警报
我正在开发一个闹钟项目,我想编辑我已经设置的闹钟。 当我编辑闹钟时,闹钟时间会更新,但我使用 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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
我在 AlarmManager 中更新 PendingIntent 的首选方法是取消它并重新设置它
不要忘记取消:
1)
AlarmManager.cancel(pendingIntent)
具有与您的挂起意图匹配的pendingIntent(相同的类,相同的操作......但不关心额外的信息,请参阅IntentFilter)2)
pendingIntent.cancel();
3)
pendingIntent = new PendingIntent()
...并进行其他设置4)
AlarmManager.set(...
提供新的 PendingIntentMy 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 settings4)
AlarmManager.set(...
to provide new PendingIntent每个警报都有其唯一的标识符,如果要更新警报,可以创建具有相同 UNIQUE_ID 的新警报。
检查此答案
Each alarm has its unique identifier, if you want to update an alarm, you can create a new one with the same UNIQUE_ID.
Check this answer