有四个Activity A,B,C,D
A启动B使用startActivityForResult方式,启动intent的Flag配置为FLAG_ACTIVITY_REORDER_TO_FRONT。
然后B启动C,C启动D,都使用上述的启动方式。
在D中有一个按钮,按钮的事件为D启动A(启动方式与上述一样),同时在启动D启动A这个点击事件中紧接着调用setResult方法和finish方法。
然后D结束跳转到A,但是此时没有调用C的onActivityResult方法。
然后A继续启动B,B启动C同样使用上述的启动方式。
在启动C时,会直接调用C的onActivityResult方法。
求大神指教这个问题的原因。。。。。
我想象的流程
历史栈. A-->B-->C-->D
在D执行启动A同时使用setResult方法依次调用C,B,A的onActivityResult方法
历史栈. A
当结束D,C,B后历史栈中只剩下A
但实际的流程
历史栈. A-->B-->C-->D
在D执行启动A同时使用setResult方法,并没有调用C的onActivityResult方法
历史栈. B-->C-->A
再执行A启动B,B启动C的操作时
历史栈. C-->A-->B
历史栈. A-->B-->C
此时刚进入C页面直接调用了C的onActivityResult方法