startActivityForResult被废弃了该用什么代替
在新的Android版本中,建议使用startActivity和registerForActivityResult来代替startActivityForResult。具体使用方法如下:
- 使用startActivity启动Activity:
Intent intent = new Intent(this, SecondActivity.class);
startActivity(intent);
- 在调用startActivity之前,使用registerForActivityResult注册一个ActivityResultCallback回调:
ActivityResultLauncher<Intent> launcher = registerForActivityResult(
new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
//处理返回结果
}
});
- 在需要接收返回结果的地方,使用launcher.launch()方法启动Activity:
Intent intent = new Intent(this, SecondActivity.class);
launcher.launch(intent);
- 在SecondActivity中,通过setResult方法返回结果:
Intent intent = new Intent();
intent.putExtra("key", "value");
setResult(Activity.RESULT_OK, intent);
finish();
``
原文地址: https://www.cveoy.top/t/topic/cqSz 著作权归作者所有。请勿转载和采集!