我正在制作闹钟项目,我想编辑已设置的闹钟。
当我编辑闹钟时,闹钟时间会更新,但我使用putExtra()
发送的值不会改变。我正在使用PendingIntent.FLAG_ONE_SHOT
标志。
但是,当我设置标记PendingIntent.FLAG_UPDATE_CURRENT
时,所有putExtra()
值也会发生变化,但现在问题是,当我点击停止按钮并finish()
时,它再次调用当前活动。
表示当我完成活动时,它会在我完成当前活动时再次按下按钮。 请帮我。 提前谢谢。
答案 0 :(得分:6)
我在AlarmManager中更新PendingIntent的首选方法是取消它并重新设置它
别忘了取消:
1)AlarmManager.cancel(pendingIntent)
,其pendingIntent与您的待定意图相匹配(相同的类,相同的操作......但不关心额外的IntentFilter)
2)pendingIntent.cancel();
3)pendingIntent = new PendingIntent()
...并进行其他设置
4)AlarmManager.set(...
提供新的PendingIntent
答案 1 :(得分:1)
每个警报都有唯一的标识符,如果要更新警报,可以创建一个具有相同UNIQUE_ID的新警报。
PendingIntent pi = PendingIntent.getBroadcast(this, PENDING_INTENT_ID, intent, 0);