onActivityResult 在 setResult 之前调用

onActivityResult called before setResult

我有一个程序,其中 onActivityResult() 使用正确的请求代码和一个 null intent 参数调用并且,当 activity 调用 setResult() 时,onactivity没有调用结果。 onActivityResult() 在 startActivityForResult()

之后调用
public void placeListActivity(View view) {

    Intent placeListIntent = new Intent(this,
            PlaceListActivity.class);
    // startActivity(placeListIntent);
    this.startActivityForResult(placeListIntent, 5);
}

protected void onActivityResult(int request, int result, Intent arg2) {
    super.onActivityResult(request, result, arg2);


  if (request == 5 && result == Activity.RESULT_OK) {
        handleOnActivityResult();
    }

第二个Activity:

@Override
public void onBackPressed() {

    if(status){
        setResult(Activity.RESULT_OK);
        finish();
    }else{
        super.onBackPressed();
    }




}
setResult(Activity.RESULT_OK);

您只发送 resultCode,因此 intent 将收到 null。在 setResult 方法中将带有 resultCode 的 Intent 作为第二个参数发送。您将首先获得该意图 activity.



注意:-当activity的启动模式为singleTask或singleTop时,一旦activity以空数据启动,就会调用onActivityResult。为防止这种情况,请使用 Intent.setFlags(0) 重置默认标志。