遍历堆栈中的活动

时间:2016-08-23 12:16:56

标签: android android-activity

假设我在堆栈中有活动A,B,C的活动实例A1,B1,A2,B2,C1。如何从C1遍历活动实例B1?

让我们概括一下B1和C1之间会有'n'个活动。

我不想从C1创建一个新的B实例。

2 个答案:

答案 0 :(得分:4)

对于Android来说,这实际上是一个非常糟糕的架构。如果您在Activity上创建多个实例,则无法专门解决这些问题,例如:"返回ActivityB"的第一个实例。 Android并非像这样设计。

您应该避免创建Activity的多个实例。使用相同的实例并且只是创建"错觉"通过交换基础数据并在显示器上添加状态转换来实现多个实例,这样看起来你正在开始另一个Activity

另一种可能的解决方案是使用大量startActivityForResult()并向调用Axctivity返回有关下一步操作的信息。

有关详细信息,请参阅(即使这些问题具体涉及使用FLAG_ACTIVITY_REORDER_TO_FRONT,问题仍然基本相同):

答案 1 :(得分:2)

将标志与Intent一起使用。

官方文件:https://developer.android.com/guide/components/tasks-and-back-stack.html

将旗帜与意图一起传递

FLAG_ACTIVITY_CLEAR_TOP

您也可以根据需要在单个Intent中放置多个FLAG。

希望这有帮助。