原startActivityForResult:
Intent intent = new Intent(this, SettingsActivity.class);
startActivityForResult(intent,1000);//该方法已废弃
接收回调:
@Override
protected void onActivityResult (int requestCode, int resultCode, Intent data) {
if (resultCode == Activity.RESULT_OK && requestCode == 1000) {
updateSettings();
}
}
新registerForActivityResult:
Intent intent = new Intent(this, SettingsActivity.class);
ActivityResultLauncher<Intent> launcher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if(result.getResultCode() == RESULT_OK){
updateSettings();
}
});
launcher.launch(intent);