在使用support v4中的Fragment时,如果我们需要调用startActivityForResult方法来与跳转的Activity进行通信时,如果希望Fragment的onActivityResult方法能够被响应,我们就必须调用Fragment的startActivityForResult方法,而不是调用:
getActivity().startActivityForResult()
后者调用的是Fragment的宿主Activity,即FragmentActivity的startActivityForResult方法。
两者的区别如下:
Fragment中的startActivityForResult方法如下:
public void startActivityForResult(Intent intent, int requestCode) {
if (mActivity == null) {
throw new IllegalStateException("Fragment " + this + " not attached to Activity");
}
mActivity.startActivityFromFragment(this, intent, requestCode);
}
调用了FragmentActivity中的startActivityFromFragment方法:
public void startActivityF