API level 23 (Android 6.0)之前
Intent intent = new Intent(this, YourSecondActivity.class);
startActivityForResult(intent, requestCode);
Intent resultIntent = new Intent();
resultIntent.putExtra("key", "yourData");
setResult(Activity.RESULT_OK, resultIntent);
finish();
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == yourRequestCode) {
if (resultCode == Activity.RESULT_OK) {
String resultData = data.getStringExtra("key");
} else if (resultCode == Activity.RESULT_CANCELED) {
}
}
}
API level 23 (Android 6.0)之后
private val startAuthActivityForResult =
registerForActivityResult(ActivityResultContracts.StartActivityForResult()) { result ->
if (result.resultCode == Activity.RESULT_OK) {
val data: Intent? = result.data
} else {
}
}
startAuthActivityForResult.launch(Intent(this, AuthActivity::class.java))
val resultIntent = Intent()
resultIntent.putExtra("key", "yourData")
setResult(Activity.RESULT_OK, resultIntent)
finish()