多个活动实例和FLAG_ACTIVITY_REORDER_TO_FRONT

5
假设当前任务栈有四个活动实例,A0、A1、B0、C0,其中C0位于栈顶。A0、A1是Activity A的实例,B0是Activity B的实例,C0是Activity C0的实例。
现在C0创建了一个带有FLAG_ACTIVITY_REORDER_TO_FRONT标志的意图,并启动了Activity A:
Intent intent = new Intent(this, A.class);
intent.setFlag(Intent.FLAG_ACTIVITY_REORDER_TO_FRONT);
startActivity(intent);

我的问题是,哪个实例会被置于前台,A0还是A1?任务栈会变成A0、B0、C0、A1或A1、B0、C0、A0吗?
谢谢。
1个回答

3

经验证实,它将把最近的实例放在前面。以您的示例为例,如果活动堆栈起始状态如下:

 A0, A1, B0, C0 (front of task)

如果C0使用Intent.FLAG_ACTIVITY_REORDER_TO_FRONT启动A,那么实例A1会被带到前台,活动栈现在变成这样:

A0, B0, C0, A1

当您使用此标志时,Android会查找该活动的实例(从任务的前面开始扫描到后面/根)。它找到的第一个实例将被置于前台。如果在活动堆栈中找不到任何实例,则会创建一个新的实例。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接