我试图将第二个活动的数据发送回第一个活动。在我的第二个活动中创建实例后:
Intent i = new Intent(this,MainActivity.class);
i.putExtra("Name",Name);
startActivity(i);
我在我的第一个活动中使用onResume方法处理发送的数据,但是当我回去时,似乎永远不会调用onResume。我该如何触发它?
首先,我们需要使用startActivityForResult启动第二个活动。例如:
Intent intent=new Intent(FirstActivity.this, SecondActivity.class);
startActivityForResult(intent, 2); // the 2 is the request code
我们还需要在FirstActivity中实现onActivityResult:
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
// Check if the request code corresponds to SecondActivity
// You can also check if resultCode has the value you were expecting
if(requestCode==2) {
// Retrieve the information passed. A message string in our case
String message=data.getStringExtra("Message");
}
}
最后,在SecondActivity中,使用它来完成并传回数据:
String message = "Going back to First Activity";
Intent intent = new Intent();
intent.putExtra("Message", message);
setResult(RESULT_OK, intent); // RESULT_OK is just an integer predefined by Android. You can pass your own value, if needed
finish();
您可能还想查看this tutorial。
您可以使用公共静态对象来保存两个活动之间的共享数据。因为您可以在第二个活动中编辑其属性,而无需将其发送回第一个活动
您必须使用活动A中的startActivityForResult(),然后在完成处理B的结果时,通过重写onActivityResult()来处理活动A中的结果。