有一项活动通常由以下方式启动:
intent = new Intent(CheckOutActivity.this, LiveStatusActivity.class);
startActivity(intent);
finish();
LiveStatusActivity 是由CheckOutActivity启动的最新活动。 现在让我们说LiveStatusActivity位于活动堆栈的顶部。
与此同时,我开始对收到的通知表达待决意,
Intent in = new Intent(this, LiveStatusActivity.class);
in.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
contentIntent = PendingIntent.getActivity(this, 0, in, PendingIntent.FLAG_UPDATE_CURRENT);
在待处理的意图活动中,应更新/替换由其他活动启动的上一个LiveStatusActivity。
现在,LiveStatusActivity已启动(通过待定意图),另一个相同的活动仍然存在。
即。 LiveStatusActivity(top t by pending intent
)-----> LiveStatusActivity(t-1 by checkoutactivity
)----> .....
尝试各种旗帜,在S.O检查了很多答案,都是徒劳的。
我也尝试了android:launchMode="singleTask"
,结果相同。
答案 0 :(得分:0)
make your LiveStatusActivity as android:launchMode="singleTask" in manifest.xml
and in your LiveStatusActivity override the onNewIntent(Intent intent) method
So when it will be called second time this onNewIntent() will be called and inisde that you can update your Activity.
也删除此标志 in.setFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);