意图附加项未被删除/替换

3

我在按钮点击时设置了一个闹钟。

该闹钟通过意图触发。

此意图获取额外的“int”以传递给广播接收器。

问题是,意图的额外部分仅在第一次单击按钮时设置,其他单击时不会更改:

Intent intent = new Intent(A.this, B.class);
intent.putExtra(WAKEUP_DURATION, wakeUpDuration);
PendingIntent sender = PendingIntent.getBroadcast(A.this, 0, intent, 0);

我尝试在广播接收器中删除它,但没有成功:

intent.removeExtra(A.WAKEUP_DURATION);
2个回答

9

在创建PendingIntent以更新来自新Intent的附加信息时,请使用FLAG_UPDATE_CURRENT


6

谢谢!这解决了问题。 对于想知道确切答案的人,"FLAG_UPDATE_CURRENT" 应该作为方法 'getBroadcast' 的第四个参数传入。 应该像这样:

PendingIntent sender = PendingIntent.getBroadcast(A.this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接