假设我在堆栈中有活动A,B,C的活动实例A1,B1,A2,B2,C1。如何从C1遍历活动实例B1?
让我们概括一下B1和C1之间会有'n'个活动。
我不想从C1创建一个新的B实例。
答案 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。
希望这有帮助。