前言
Fragment跳转Activity使用startActivityForResult获取返回值
如果直接获取是获取不到结果的
需要在fragment所属的activity中遍历
@Overrideprotected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);//遍历调用onActivityResultfor (Fragment fragment : getSupportFragmentManager().getFragments()) {fragment.onActivityResult(requestCode, resultCode, data);}}
然后在fragmen中再调用
@Overridepublic void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {super.onActivityResult(requestCode, resultCode, data);Log.e("TAG", "1111111111111");}
打印结果证实
注意
这里还有一个很严重的坑没有提及,及父Activity的启动模式会对Fragment的onActivityResult的回调有影响。我测试发现当父Activity的启动模式设置为 SingleInstance 是完全阻塞了Fragment的onActivityResult回调,如果设置为 SingleTask 好像也有影响。
比如fragment启动相册选择图片回来就只能走activity的onActivityResult