思路:
在FirstActivity中通过startActivityForResult(intent,1); 方法启动 SecondActivity, SecondActivity活动销毁时通过setResult() 方法返回数据给FirstActivity. FirstActivity通过重写onActivityResult方法捕获返回的数据
FirstActivity代码如下
Button button1=(Button) findViewById(R.id.button1);
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this,SecondActivity.class);//显式Intent
startActivityForResult(intent,1);
}
});
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch (requestCode) {
case 1:
if (resultCode == RESULT_OK) {
String returnedData=data.getStringExtra("data_return");
Log.d("FirstActivity",returnedData);
}
break;
default:
}
}
SecondActivity代码如下所示
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second_layout);
//通过按钮销毁活动
Button button2 = (Button) findViewById(R.id.button_2);
button2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.putExtra("data_return", "hello FirstActivity");
setResult(RESULT_OK, intent);
finish();
}
});
}
//通过back键销毁活动
@Override
public void onBackPressed() {
Intent intent = new Intent();
intent.putExtra("data_return", "hello FirstAvtivity hahaha");
setResult(RESULT_OK, intent);
finish();
}