我有一个通知,它是从堆栈中的活动创建的,并且堆栈的恢复非常重要。堆栈中的每个活动应该只有一次。
所以我有这个:
A -> B, B starts notification
出于我的意图,我需要在堆栈上恢复A -> B
。我尝试启动A,但目的似乎没有任何额外的东西可以立即启动startActivity
。
恢复堆栈需要哪些标志和XML属性组合?
如果用户在B
上并点按通知,则不应启动新堆栈。重新加载一切都很好,但它不应该A -> B -> B
。
答案 0 :(得分:1)
在通知意图中使用
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
会将现有活动带到前面,否则它会创建它,使堆栈不受重复活动的影响