Fragment中startActivityForResult不回调onActivityResult问题

问题

一次开发中,突然发现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);
}

你可能感兴趣的:(Android)