Android onActivityResult() 未触发

Android onActivityResult() not firing

我知道有很多与此类似的问题,但是 none 那里提到的解决方案对我有用,我不太清楚为什么。

我有以下设置:

MainActivity.java 启动:

Button b = findViewById(R.id.btn_b);
b.setOnClickListener(new View.onClickListener() {
    public void onClick(View v) {
        Intent intent = new Intent(MainActivity.this, Activity2.class);
        startActivityForResult(intent, 0);
    }
});

Activity2.java 返回值:

@Override
public onBackPressed() {
    System.out.println("Here"); // this can be seen in the logcat
    Intent retIntent = new Intent();
    // putExtra some return values
    setResult(RESULT_OK, retIntent);
    finish();
}

正在 MainActivity.java 接收数据:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    System.out.println("Returning"); // this doesn't fire at all

    if (data != null) { // I know there will be no other activities, and I want to act on whatever result I get
        // extract and do something with data
    }
}

我真的不明白这是怎么回事。有人可以帮忙解释一下吗,如何解决?如果需要,我很乐意提供更多信息。

感谢您的宝贵时间。

MainActivity.java 中的这一行更改为

startActivityForResult(intent, 1);

然后在方法onBackPressed()中像这样调用方法setResult

setResult(RESULT_OK);

然后在onActivityResult方法中写这个条件。

if (resultCode == Activity.RESULT_OK) {//place your logic here}

如果这对你有用,请告诉我。