Android 再次通知未决事项
我正在通知用户一些事件(在我的情况下是短信接收)并挂起PendingEvent,如:Android 再次通知未决事项,android,android-intent,notifications,android-pendingintent,Android,Android Intent,Notifications,Android Pendingintent,我正在通知用户一些事件(在我的情况下是短信接收)并挂起PendingEvent,如: intent = new Intent(context, ConversationActivity.class); intent.setAction(Constants.ACTION_SMS_RECEIVED); intent.putExtra(MessageDAO.CONVERSATION_ID, message.getConversationId()); intent.putExtra(MessageDAO
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 );
我的目的是启动新的会话活动
,如果没有,也可以重用旧的(刷新其内容)。但事实上,我的pendingent
只是使用旧的,而不是刷新它的内容。我已经检查过旧的附加功能是否仍然发送到我的对话活动中
有什么问题?我真的被它卡住了,不知道该怎么办
更新
我在targetConversationActivity.onCreate()中提取额外内容,如:
Bundle bundle=this.getIntent().getExtras();
if(bundle!=null) {
conversationId=bundle.getString(MessageDAO.CONVERSATION_ID);
address=bundle.getString(MessageDAO.ADDRESS);
}
如果要重用现有活动,需要执行以下操作。创建通知时,添加以下内容:
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_SINGLE_TOP);
然后您需要覆盖会话活动
中的onNewIntent()
。如果用户单击一个通知,并且已经有一个活动的会话活动,将调用它(而不是onCreate()
。您需要从onNewIntent()
中的意图中提取“额外内容”,并用这个新数据替换内容。旧内容的状态是什么当新的Intent
发送到它时的活动?在哪里(以什么方法)检查额外内容?显示用于提取/检查额外内容的代码。@DavidWasser我已更新了我的问题