从通知还原活动堆栈



我有一个从堆栈中的活动创建的通知,恢复堆栈很重要。堆栈中的每个活动应该只存在一次。

所以我有这个:

A -> B, B starts notification

出于我的目的,我需要在堆栈上恢复A -> B。我试着启动A,但似乎没有任何额外的意图来立即启动startActivity

恢复堆栈需要什么标志和XML属性的组合

如果用户在B上并点击通知,则不应启动新堆栈。重新加载所有内容都很好,但不应该进行A -> B -> B

在您的通知意图中使用

i.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
i.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP);

因为你不能/不应该改变后退按钮功能,在不同的应用程序之间后退。在B活动中,使用"向上"按钮,使用类似以下的东西导航回堆栈

Intent upIntent = new Intent(this,ParentActivity.class);
upIntent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(upIntent);
finish();

Intent.FLAG_ACTIVITY_REORDER_TO_FRONT将把一个现有的活动放在前面,否则它将创建它,使堆栈没有重复的活动

最新更新