FLAG_ACTIVITY_REORDER_TO_FRONT和startActivityForResult

时间:2011-03-03 20:00:09

标签: android

活动A使用startActivityForResult启动B,B使用startActivity启动C.之后,活动堆栈为A B C.

现在假设,C使用FLAG_ACTIVITY_REORDER_TO_FRONT标志对B进行startActivity调用,然后活动堆栈将变为A C B.

我的问题是,现在,如果B完成,A中的onActivityResult()会因B退出而被调用吗?

感谢。

1 个答案:

答案 0 :(得分:5)

根据finish()的文件判断:

  

在您的活动完成后调用此方法   并应该关闭。该   ActivityResult被传播回   谁通过你发起你   onActivityResult()。

这让我相信即使C介于两者之间,A也会得到B的结果。

编辑 - 经过一些测试后,我发现了一些有趣的互动。

一些记录后的事件顺序:

  1. A开始
  2. B开始
  3. C开始
  4. B恢复(使用FLAG_ACTIVITY_BRING_TO_FRONT)
  5. B完成
  6. C已恢复(在B下)
  7. C完成
  8. A恢复并获得B的结果
  9. 换句话说,A按预期获得B的结果,但在C完成并且A恢复后发生