android - onActivityResult未调用

Man*_*esh 0 android android-intent onactivityresult

我正在调用Activity AddRecordActivityfrom Activity ViewRecordsActivity.两者都延伸AppCompatActivity.

我打电话给AddRecordActivity,

startActivityForResult(intent, Constants.MY_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)

AddRecordActivity我打电话添加记录后,下面的代码:

Intent intent = new Intent(AddRecordActivity.this, ViewRecordsActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra(Constants.EXTRA_OPERATION_SUCCESS_TEXT, "Record added");
setResult(RESULT_OK, intent);
startActivity(intent);
finish();
Run Code Online (Sandbox Code Playgroud)

ViewRecordsActivity,

    @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    if (resultCode == RESULT_OK) {
        switch (requestCode) {
            case Constants.MY_REQUEST_CODE: {
                Toast.makeText(this, data.getStringExtra(Constants.EXTRA_OPERATION_SUCCESS_TEXT), Toast.LENGTH_SHORT).show();
            }
            break;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我不明白为什么事件onActivityResult没有被触发?

Bla*_*elt 5

这是因为你正在重启它startActivity(intent);.摆脱它.呼叫setResult(RESULT_OK, intent);finish();