我有一个活动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中。