0

我有一个程序,其中使用正确的请求代码和一个空意图参数调用 onActivityResult() 并且,当该活动调用 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();
    }




}
4

1 回答 1

0
setResult(Activity.RESULT_OK);

您只发送 resultCode 所以意图将被接收为空。在 setResult 方法中使用 resultCode 作为第二个参数发送 Intent。您将在第一个活动中获得该意图。

setResult 方法签名

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

于 2016-11-04T05:43:26.200 回答