通过 Intent 将变量传递给活动始终是相同的

发布于 2024-11-07 06:58:58 字数 671 浏览 0 评论 0原文

我的应用程序接收 C2DM 消息并随 C2DM 消息发送状态错误通知。到目前为止,一切都很好。 当用户单击通知时,将调用一个活动,并将 C2DM 消息作为变量传递。

现在,第一次运行顺利,第二次传递的变量就没有刷新了。它始终是第一个传递的变量。 我错过了什么吗?

以下是片段:

C2DM 通知

Intent notificationIntent = new Intent(context, BMBPad.class);
notificationIntent.putExtra("seqid", message);              
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

这是我读取 Intent 调用的 Activity 中的变量的方式。

extra = this.getIntent().getExtras();
seqidi = extra.getString("seqid");

有人知道为什么会发生这种情况吗?

My application receives a C2DM message and sends a status bad notification with the C2DM message. So far so good.
When the user clicks on the notification, an activity is called, passing the C2DM message as a variable.

Now, the first time it works smoothly, the second time the variable passed is not refreshed. It's always the first variable passed.
Am I missing something?

Here are the snipperts:

C2DM Notification

Intent notificationIntent = new Intent(context, BMBPad.class);
notificationIntent.putExtra("seqid", message);              
PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, 0);
notification.setLatestEventInfo(context, contentTitle, contentText, contentIntent);

This is how I read the variable in the Activity called by the Intent.

extra = this.getIntent().getExtras();
seqidi = extra.getString("seqid");

Anyone any idea why that happens?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

沒落の蓅哖 2024-11-14 06:58:58

您需要使用标志 PendingIntent.FLAG_UPDATE_CURRENT

在您的情况下:

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

另请查看此处:Android PendingIntent

You need to use the flag PendingIntent.FLAG_UPDATE_CURRENT

In your case:

PendingIntent contentIntent = PendingIntent.getActivity(context, 0, notificationIntent, PendingIntent.FLAG_UPDATE_CURRENT);

Please also have a look here: Android PendingIntent

淡莣 2024-11-14 06:58:58

您可以尝试将此代码段附加到 Intent 调用的 Activity 中。

/**
 * Override super.onNewIntent() to let getIntent() fetch the latest intent
 * that was used to start this Activity rather than the first intent.
 */
@Override
public void onNewIntent(Intent intent){
    super.onNewIntent(intent);
    setIntent(intent);
}

You can try to append this snippet in the Activity called by the Intent.

/**
 * Override super.onNewIntent() to let getIntent() fetch the latest intent
 * that was used to start this Activity rather than the first intent.
 */
@Override
public void onNewIntent(Intent intent){
    super.onNewIntent(intent);
    setIntent(intent);
}
蓝眸 2024-11-14 06:58:58

重写 onNewIntent() 方法,像这样获取变量:

@Override
public void onNewIntent(Intent intent){
super.onNewIntent(intent);
seqid = intent.getStringExtra("seqid","");

}

因为再次启动活动将触发 onNewIntent() 方法。

override onNewIntent() method, get your variable like this:

@Override
public void onNewIntent(Intent intent){
super.onNewIntent(intent);
seqid = intent.getStringExtra("seqid","");

}

because start the activity again will trigger onNewIntent() method.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文