7

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

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

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

4

2 回答 2

7

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

1)AlarmManager.cancel(pendingIntent)使用与您的待处理意图匹配的 pendingIntent(相同的类,相同的操作......但不关心额外的查看IntentFilter )
2) pendingIntent.cancel();
3) pendingIntent = new PendingIntent()... 并进行其他设置
4)AlarmManager.set(...提供新的 PendingIntent

于 2011-08-19T18:11:21.030 回答
2

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

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

检查这个答案

于 2014-02-26T15:17:10.537 回答