如何在 Recieving activity 中获取 ParcelableExtra 而没有完成

How to getParcelableExtra in Recieving activity without finishing it

假设,我有第 1 个 activity,我从第 2 个 activity 没有完成第 1 个 activity

当我在第二个 activity 中按下后退按钮时,我回到了第一个 activity 完成了第二个 activity 并使用构造函数在 parcel class 中设置了值。 如果我在第二个 activity 中使用 startActivity() ,那么它工作正常,但我只想在第二个 activity.

中使用 finish()

现在,我想 getParcelableExtra() 在我的第一个 activity。

我该怎么做?

提前致谢。

在您的第一个 activity 通话中

startActivityForResult(new Intent(context, YourSecondActivity.class), requestCode);

在您的第二个 activity 中,您可以覆盖 onBackPressed() 方法:

@Override
public void onBackPressed() {

    Intent intent = new Intent();
    intent.putExtra("extra_name", YourParcelable);
    setResult(RESULT_OK, intent);

    super.onBackPressed();
}

然后,在第一个activity接收可打包数据:

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

    YourClass value = (YourClass)data.getParcelableExtra("extra_name");
}