Android 如何在未完成接收活动的情况下获取ParcelableExtra

Android 如何在未完成接收活动的情况下获取ParcelableExtra,android,android-intent,parcelable,Android,Android Intent,Parcelable,假设我有第一个活动,从中我转到第二个活动,但没有完成第一个活动 当我在第2个活动中按下后退按钮时,我返回到第1个活动,完成第2个活动并使用构造函数设置地块类中的值。 如果我在第二个活动中使用startActivity(),那么效果很好,但我只想在第二个活动中使用finish() 现在,我想在我的第一个活动中getParcelableExtra() 我该怎么做 提前感谢。在您的第一次活动电话中 startActivityForResult(new Intent(context, YourSecon

假设我有第一个
活动
,从中我转到第二个
活动
,但没有完成第一个
活动

当我在第2个
活动中按下后退按钮时,我返回到第1个活动,完成第2个活动并使用构造函数设置地块类中的值。
如果我在第二个活动中使用
startActivity()
,那么效果很好,但我只想在第二个活动中使用
finish()

现在,我想在我的第一个活动中
getParcelableExtra()

我该怎么做


提前感谢。

在您的第一次活动电话中

startActivityForResult(new Intent(context, YourSecondActivity.class), requestCode);
在第二个活动中,您可以覆盖
onBackPressed()
方法:

@Override
public void onBackPressed() {

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

    super.onBackPressed();
}
然后,在第一个活动中,接收包裹数据:

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

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

我想你应该试试startActivityForResult()并得到你想要的结果want@MohitSuthar非常感谢。我使用parcel类从活动传递数据,如果我使用startActivityForResult(),那么我不需要使用parcel类,对吗?但不幸的是,我需要使用parcel类。如果使用parcel类传递数据,则可以使用startActivityForResult()获取解析数据,前提是您知道如何使用startActivityForResult()