再次通知PendigIntent

时间:2013-05-29 12:38:37

标签: android android-intent notifications android-pendingintent

我正在通知用户有关某些事件(在我的情况下是短信接收)和挂起PendingIntent,如:

intent = new Intent(context, ConversationActivity.class);
intent.setAction(Constants.ACTION_SMS_RECEIVED);
intent.putExtra(MessageDAO.CONVERSATION_ID, message.getConversationId());
intent.putExtra(MessageDAO._ID, message.getId());
intent.putExtra(MessageDAO.ADDRESS, message.getAddress());
contentIntent = PendingIntent.getActivity(context, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT );

我的目的是在没有人的情况下开始新的ConversationActivity,或者只重用旧的PendingIntent(刷新其内容)。但实际上我的ConversationActivity只是使用旧的而不是刷新它的内容。我已经检查了旧的附加内容仍然发送到我的ConversationActivity.onCreate()

有什么问题?我真的被它困住了,无法理解该怎么做......

更新

我正在提取目标Bundle bundle=this.getIntent().getExtras(); if(bundle!=null) { conversationId=bundle.getString(MessageDAO.CONVERSATION_ID); address=bundle.getString(MessageDAO.ADDRESS); } 中的额外内容,例如:

{{1}}

1 个答案:

答案 0 :(得分:1)

如果要重用现有活动,则需要执行以下操作。创建通知时,请添加以下内容:

intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);

然后,您需要覆盖onNewIntent()中的ConversationActivity。如果用户点击通知并且已经存在有效onCreate(),则会调用此代码(而不是ConversationActivity。您需要从{{1}中提取" extras"在Intent中使用此新数据替换内容。