我有一个有两个活动的应用程序。一个是MainActivity
,我将Intent
称为SecondActivity
。然后,在第二个屏幕上我创建了一个Object,我想返回MainActivity
。我从Intent
到SecondActivity
创建MainActivity
并将此对象放在那里。问题是我应该在Intent
代码中的哪个位置MainActivity
?我尝试实施onResume()
方法只是为了看看会发生什么,但在这种情况下,它会在返回主屏幕时运行onCreate()
和onResume()
方法。在此先感谢您的帮助!
答案 0 :(得分:1)
从MainActivity中使用startActivityForResult()方法调用SecondActivity
Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
在SecondActivity中设置要返回MainActivity的数据
Intent returnIntent = new Intent();
returnIntent.putExtra("result",result);//Data you want to send back
setResult(Activity.RESULT_OK,returnIntent);
finish();
现在,在MainActivity类中,为onActivityResult()方法编写以下代码。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1) {
if(resultCode == Activity.RESULT_OK){
String result=data.getStringExtra("result");
}
if (resultCode == Activity.RESULT_CANCELED) {
//Write your code if there's no result
}
}
}//onActivityResult
有关onActivityResult的更多信息,请查看link;
答案 1 :(得分:0)
1)有两种方式,首先是你的方式。
在这种情况下,您可以在Android的任何生命周期中收到Intent
,onCreate
,onStart
,onResume
,具体取决于您的应用的要求。在正常情况下,我们会在getIntent().getExtras()
中使用onCreate
。
2)但是对于这种情况,我建议您使用startActivityForResult()
而不是startActivity()
,因为在这种情况下,您不必在创建MainActivity
时完成SecondActivity
{1}},只需在完成SecondActivity
之前返回您的意图。另请注意,无需再次创建MainActivity
,而是在回拨Intent
中获取onActivityResult
个数据。