完成后未调用 OnActivityResult

Ste*_*his 1 android android-activity

我有一系列的多个活动,有时我想进入我的应用程序的不同部分,我不想在堆栈中包含以前的活动。就像这样:活动 A -> 活动 A1 -> 活动 A2 -> 活动 A3 -> 活动 B

当我开始活动 B 时,我想关闭所有的 As 活动。

做到这一点最简单的方法我觉得是setResult那么finish的最后一项活动,并在以前的查找结果,并关闭活动以及传递相同的数据之后。

所以我在开始B之前setResult然后finishA3。

问题是 A3 已完成,但onActivityResult在我关闭 B 之前不会在 A2 上调用,以便应恢复 A2。

我认为onActivityResult如果在其上启动另一个活动,则无法传播到多个活动。

然后我被屏蔽了。我不知道我应该做什么,或者是否有另一种方法可以一次关闭多个活动。

Ume*_*ooq 6

您必须使用 startActivityForResult() 启动 A 的所有活动。当您开始活动 B 时, setResult in A3 and finish A3. A3 一完成,A2 onActivityResult()将被调用,setResult 并完成它。A2 一完成,A1 的 onActivityResult 就会被调用。现在对关闭活动的结果做任何你想做的事情。

或者您可以在 A 的所有子活动完成后从 A 开始 B。