在AndroidX中,onActivityResult()方法已被弃用,取而代之的是ActivityResultLauncher。下面是一个使用ActivityResultLauncher的示例代码:
首先,在您的Activity或Fragment中声明一个ActivityResultLauncher变量:
private ActivityResultLauncher launcher;
然后,在onCreate()或onCreateView()方法中初始化该变量:
launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
result -> {
if (result.getResultCode() == Activity.RESULT_OK) {
// 在此处处理ActivityResult
Intent data = result.getData();
// ...
}
});
接下来,在需要启动另一个Activity并接收其结果的地方,使用launcher来启动Activity:
Intent intent = new Intent(this, YourActivity.class);
launcher.launch(intent);
最后,在您的另一个Activity中,设置要返回的结果并调用finish()方法来关闭Activity:
Intent intent = new Intent();
intent.putExtra("result", "Your result data");
setResult(Activity.RESULT_OK, intent);
finish();
通过使用ActivityResultLauncher,您可以更方便地处理Activity结果,并且不再需要在Activity中重写onActivityResult()方法。