在setResult之前调用onActivityResult

时间:2016-11-03 14:27:14

标签: android android-activity startactivityforresult

我有一个程序,其中使用正确的请求代码调用onActivityResult()和null intent参数。当该活动调用setResult()时,不调用onactivityresult。 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();
    }

第二项活动:

@Override
public void onBackPressed() {

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




}

1 个答案:

答案 0 :(得分:0)

setResult(Activity.RESULT_OK);

您只发送resultCode,因此intent将被收到null。使用setResult方法中的resultCode作为第二个参数发送Intent。您将在第一项活动中获得该意图。

setResult method signature

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