我的应用包含MainActivity
和ChildAaActivity
以及ChildBbActivity
。
MainActivity可以将我们发送到任一子活动,用户可以根据需要在两个子活动之间移动。
但是,每个活动只能有一个实例。
问题是,如果我让孩子活动singleInstance
,那么他们都是单独的任务,并切换到另一个应用程序并回到孩子意味着onBackPress
我退出应用程序(当我应该返回MainActivity)
如果我将launchMode
作为标准,那么我会得到多个子活动实例,尤其是在两个孩子之间来回移动时。
如果我使用singleTop
,那么我有两个问题
如果我对孩子使用noHistory
,我就无法在他们之间自由移动(首先按回来会让我回到MainActivity)
使用isTaskRoot()
显然无法使用singleInstance
修复应用程序退出错误,因为它始终是真的(对其他方案并不有用)
我应该如何正确地实现我需要的行为?
答案 0 :(得分:1)
您不需要任何特殊的启动模式。每当您启动一个孩子Activity
时,请使用以下标志:
intent.addFlags(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
这会将Activity
的现有实例移动到任务堆栈的前面(如果有的话),或者创建一个新实例(如果没有现有实例)。