FLAG_ACTIVITY_REORDER_TO_FRONT和startActivityForResult

Kai*_*Kai 4 android

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

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

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

谢谢.

Mat*_*lis 5

根据finish()的文档判断:

在您的活动完成后调用此选项并应关闭.ActivityResult会传播回通过onActivityResult()启动您的人.

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

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

一些记录后的事件顺序:

  1. 一开始
  2. B开始了
  3. C开始了
  4. B恢复(使用FLAG_ACTIVITY_BRING_TO_FRONT)
  5. B完了
  6. C恢复(它在B下)
  7. C完了
  8. A恢复并获得B的结果

换句话说,A按预期获得B的结果,但它在C完成并且A恢复后发生.