我有一个活动A,它像启动活动一样被触发。
在oncreate中,如果缺少某些数据,活动A会创建一个具有startactivity的新活动B.之后它也会调用finish()。就像这样,我获得了一个只有活动B的后台。
到目前为止,非常好。
现在,当某些任务在活动B中完成时,它会调用startactivity(activityA)并随后调用自己的finish()。它还会传递一些额外内容,而活动A会毫无问题地读取它们。
private void goToA(){
Intent goHome= new Intent(this, A.class);
goHome.setFlags(Intent.FLAG_ACTIVITY_NO_ANIMATION | Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
goHome.putExtra("test", "test 1");
startActivity(goHome);
finish();
}
现在我有一个除了活动A之外什么都没有形成的靠背。对吧?事实上,如果我按“后退”,我会回到发射器。
好的,现在,在活动A上,在操作过程中我创建了一个包含pendingintent的通知。 intent使用新的extras值调用活动A本身,但使用之前从活动B传递的相同参数。
Intent notifyIntent= new Intent(MyApplication.getAppContext(), A.class);
notifyIntent.setFlags(Intent.FLAG_ACTIVITY_BROUGHT_TO_FRONT);
notifyIntent.putExtra("test", "test 2");
PendingIntent intentHome= PendingIntent.getActivity(MyApplication.getAppContext(),2,notifyIntent, PendingIntent.FLAG_CANCEL_CURRENT);
Notification notificationToSend= new Notification(R.drawable.icon_notification, "Tracciamento avviato", System.currentTimeMillis());
notificationToSend.setLatestEventInfo(MyApplication.getAppContext(), "Tracciamento sgàget!","Seleziona per tornare al tracciamento", intentHome);
notificationToSend.flags |= Notification.DEFAULT_SOUND;
notificationToSend.flags |= Notification.FLAG_NO_CLEAR;
现在,如果我回到发射器,我打开通知区域,然后点击我的通知,我按照预期返回到活动A,但是当我在onResume中读取附加内容时,我会获得通过活动传递的内容B(“测试1”)!
我不认为这是一个常见的“正确更新pendingintent”问题,因为第一个startactivity根本不涉及任何pendingintent。有什么建议吗?