我的活动流程是这样的
A - > B - > C - >乙
当我从C启动B时,后面的堆栈应该重新排序为:
A - > C - >乙
我正在使用FLAG_ACTIVITY_REORDER_TO_FRONT但是从堆栈中重新使用实例,我不需要以前的状态(我需要再次调用onCreate。)
更新:为什么我需要它(用例)
用户从A导航 - > B(在此更改内容) - > ç
在C上打开抽屉导航并启动B. B应该以初始状态启动。
答案 0 :(得分:0)
使用FLAG_ACTIVITY_REORDER_TO_FRONT
并向Intent
添加额外内容,如下所示:
Intent intent = new Intent(this, ActivityB.class);
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
intent.putExtra("reinitialize", true);
startActivity(intent);
然后,在ActivityB
中执行此操作以在活动被带到前面时重新创建活动:
@Override
protected void onNewIntent(Intent intent) {
super.onNewIntent(intent);
if (intent.hasExtra("reinitialize")) {
// We need to recreate this activity
Intent launchIntent = new Intent(this, this.getClass());
startActivity(launchIntent);
finish();
}
}