2011-02-09 74 views
4

假设当前任务堆栈有四个活动实例,A0,A1,B0,C0,堆栈顶部有C0。 A0,A1是活动A的实例,B0是活动B的实例,C0是活动C0的实例。多个活动实例和FLAG_ACTIVITY_REORDER_TO_FRONT

现在C0与FLAG_ACTIVITY_REORDER_TO_FRONT创建一个意图,并开始活动答:

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?

谢谢。

回答

2

经验证据表明,它将最近的实例带到前面。在你的榜样,如果活动堆栈开始时是这样的:

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

和C0启动A与Intent.FLAG_ACTIVITY_REORDER_TO_FRONT,例如A1被带到前面,现在活动堆栈看起来是这样的:

A0, B0, C0, A1 

当您使用此标志时,Android将查找此活动的实例(从任务的前端开始并扫描到任务的后端/根目录)。它发现的第一例将被带到前面。如果它没有在活动堆栈中找到任何实例,它将创建一个新实例。