3

我有一个启动活动 B 的活动 A:

activityA.startActivityForResult(new Intent(activityA, B.class), REQUESTCODE_B);

在 Activity B 中单击按钮时,会执行一个从 Aie 启动 Activity C 的方法

activityA.startActivityForResult(new Intent(activityA, C.class), REQUESTCODE_C);

在活动 C 中单击按钮时,通过调用 finish() 将其关闭,而 B 保持活动状态。

现在我希望调用activityA 的onActivityResult() 方法,但它只在activityB 完成后调用。我可以想象这是设计使然,但是有没有办法直接让activityA知道activityC已经完成?并且没有活动 B 或 C 必须明确了解 A?

4

1 回答 1

1

这是非常糟糕的做法。当您启动 ActivityC 时,您不能确定 ActivityA 没有被 Android 破坏。Android 可以随时销毁后台活动。当您调用 ActivityC.finish() 时,ActivityA 可能不存在。然后,当您调用 ActivityB.finish() 时,Android 从活动堆栈创建 ActivityA 并为已完成的活动调用 onActivityResult() 方法(我不确定按哪个顺序)。告诉我们您无法将 ActivityC 的结果返回到 ActivityB 的原因。

于 2012-09-18T17:57:03.087 回答