3

我正在从具有额外整数意图的服务创建通知。出于某种原因,这并不像看起来那么容易。这就是我正在做的事情:

Notification notification = new Notification(R.drawable.notification_icon, "Title", 0);
Intent relaunchIntent = new Intent(this, SomeClass.class);
relaunchIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
relaunchIntent.putExtra("load", getId());
notification.setLatestEventInfo(this, "Title", "Tap here to open", PendingIntent.getActivity(this, 0, relaunchIntent, 0);
notificationManager.notify(1234, notification);

然后从SomeClass,它读起来像这样......

if(getIntent().getExtras() != null)
    load(getIntent().getExtras().getInt("load", -1));

奇怪的是,当我从getInt()方法中读取值时,我得到的结果不一致。有时我会得到我在之前的通知中设置的东西的值。例如,当我将额外设置为 4 时,我得到的值为 3。我知道这非常令人困惑和奇怪,这就是为什么我想知道是否有人经历过这样的事情以及您可能采取了什么措施来解决它。谢谢!

4

1 回答 1

5

您应该尝试PendingIntent.FLAG_UPDATE_CURRENT在调用时使用PendingIntent.getActivity。从文档中:

如果您正在创建仅附加内容发生变化的意图,则可以使用此选项,并且不关心任何收到您之前的 PendingIntent 的实体将能够使用您的新附加内容启动它,即使它们没有明确提供。

我自己遇到了这个问题,并从对此答案的评论中找到了答案

于 2011-08-18T12:18:27.743 回答