奇怪的行为startActivityForResult from Fragment



我有一个活动FirstActivity.Java有一个FragmentA.Java调用startActivityForResult()。SecondActivity.Java调用finish(),但是onActivityResult被调用一次,因为FragmentA调用startActivityForResult(),这是在FragmentA中编写的。当SecondActivity.Java调用finish()时,

FragmentA:

Intent popup = new Intent(getActivity(),
PopupActivity.class);
popup.putExtra(PopupActivity.EXTRA_URL, url + "&_resolve=popupResolve");
startActivityForResult(popup, 222);
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (requestCode == 222){
        if (resultCode == Activity.RESULT_OK) {
            executeJS((Uri) data.getSerializableExtra(PopupActivity.EXTRA_RESOLVE));
        }
    }
}

SecondActivity:

Intent data = new Intent();
Uri uri = Uri.parse(mUrl);
data.putExtra(EXTRA_RESOLVE, uri);
setResult(Activity.RESULT_OK, data);
finish();

当Fragment调用startActivityForResult()时,当完成下一个activity时,onActivityResult方法在第一个activity中调用,而不是在Fragment中。

相关内容

  • 没有找到相关文章

最新更新