问题
一次开发中,突然发现Fragment中的onActivityResult方法不回调了?使用的fragment是v4版本的,调用的是fragment的startActivityForResult()。
排查
首先检查fragment所在Activity,发现Activity中存在onActivityResult,fragment发起startActivityforResult后这里是会被调用的,但是fragment中的不调用。这时如果把Activity中的onActivityResult去掉,fragment中又可以回调了,那么问题很明确是出在Activity中了.
解决
原因是Activity的onActivityResult,如果想把result继续传到子Fragment中,必须调用 super.onActivityResult(requestCode, resultCode, data);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
}