0

onActivityResult() が正しいリクエスト コードと null インテント パラメータで呼び出されるプログラムがあります。そのアクティビティが setResult() を呼び出すと、onactivityresult は呼び出されません。startActivityForResult() の後に呼び出される onActivityResult()

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();
    }

2 番目のアクティビティ:

@Override
public void onBackPressed() {

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




}
4

1 に答える 1

0
setResult(Activity.RESULT_OK);

resultCode のみを送信しているため、インテントは null で受信されます。setResult メソッドの resultCode を 2 番目のパラメータとして Intent を送信します。最初のアクティビティでその意図を得ることができます。

setResult メソッドのシグネチャ

注:-アクティビティの起動モードが singleTask または singleTop の場合、アクティビティがデータ null で開始されるとすぐに onActivityResult が呼び出されます。これを防ぐには、Intent.setFlags(0) を使用してデフォルト フラグをリセットします。

于 2016-11-04T05:43:26.200 に答える