Android 从活动返回后未调用onActivityResult

Android 从活动返回后未调用onActivityResult,android,android-intent,android-activity,Android,Android Intent,Android Activity,我将从activity MainActivity中的片段转到activity SetExperimentActivity,如下所示: Intent myIntent = new Intent(getActivity(), SetExperimentActivity.class); myIntent.putExtra(SetExperimentActivity.KEY_RESERVATION_END, reservation.getEndAsDate()); getActivity().start

我将从activity MainActivity中的片段转到activity SetExperimentActivity,如下所示:

Intent myIntent = new Intent(getActivity(), SetExperimentActivity.class);
myIntent.putExtra(SetExperimentActivity.KEY_RESERVATION_END, reservation.getEndAsDate());
getActivity().startActivityForResult(myIntent, 0);
getActivity().overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
Intent myIntent = new Intent();
myIntent.putExtra(Constants.EXTRA_EQUIPMENT, equipment);
setResult(0, myIntent);
finish();
在MainActivity中,我有onActivityResult方法

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    this.intent = data;
}
在SetExperimentActivity中,我进行了一些操作,并重定向回MainActivity,使用额外的包裹,如下所示:

Intent myIntent = new Intent(getActivity(), SetExperimentActivity.class);
myIntent.putExtra(SetExperimentActivity.KEY_RESERVATION_END, reservation.getEndAsDate());
getActivity().startActivityForResult(myIntent, 0);
getActivity().overridePendingTransition(android.R.anim.slide_in_left, android.R.anim.slide_out_right);
Intent myIntent = new Intent();
myIntent.putExtra(Constants.EXTRA_EQUIPMENT, equipment);
setResult(0, myIntent);
finish();

onActivityResult没有被调用

在这种情况下,您应该使用
startActivityForResult
,而不是
startActivity
!请参阅上提供的官方文档。

startactivityforresult
方法在第一个活动中调用,然后在第二个活动中填充数据后,我们可以使用
设置结果(结果\u OK,数据)然后在调用
onactivityresult
后,在您的第一个活动中输入代码:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// Check which request we're responding to
if (requestCode == PICK_CONTACT_REQUEST) {
    // Make sure the request was successful
    if (resultCode == RESULT_OK) {
        // The user picked a contact.
        // The Intent's data Uri identifies which contact was selected.

        // Do something with the contact here (bigger example below)
    }
}
}

getIntent从不返回null,因此我设置-myIntent.putExtra(Constants.EXTRA_设备,设备)。。。。setResult(0,myIntent)。。。。完成();它返回到MainActivity,但未调用my onActivityResult在MainActivity类中调用onActivityResult?在MainActivity类中调用startActivityForResult调用其他活动