调用startActivityForResult后onActiv

2017-02-16  本文已影响243人  Turwe

需求:

ActivityA中吊起另外一个ActivityB,在ActivityB中做进一步处理,finish之后要拿到相应结果,在ActivityA中做进一步处理。

方案:

ActivityA中调用startActivityForResult(Intent intent, int requestCode)方法,定义requestCode,在onActivityResult(int requestCode, int resultCode, Intent data)根据requestCode来识别对应的回调做处理。

问题:

但是面对这个很简单的需求出了一个问题就是:在ActivityA中调用startActivityForResult(Intent intent, int requestCode)之后onActivityResult(int requestCode, int resultCode, Intent data)方法被立即触发了(是的在ActivityB启动之前),这就和可怕了,我根本就拿不到这个回调啊!

处理:

经排查,如果被启动的Activity的launch modeSingleInstacneSignleTask,且不论是从Activity还是从Fragment启动该Activity都会造成这种情况,所以根据实际情况修改launch mode即可。

上一篇 下一篇

猜你喜欢

热点阅读