onActivityResult被标注过时了,新API的写法

该篇博客介绍了如何在Android应用中利用ActivityResultContracts和ActivityResultLauncher简化从Fragment启动Activity的过程,详细展示了添加依赖、创建Intent及注册结果回调的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先添加依赖

    implementation 'androidx.activity:activity-ktx:1.3.1'
    implementation 'androidx.fragment:fragment-ktx:1.4.0'

  Intent intent = new Intent(requireActivity(), YourActivity.class);
  startActivityLauncher.launch(intent);
    private ActivityResultLauncher<Intent> startActivityLauncher =
            registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
                @Override
                public void onActivityResult(ActivityResult result) {
                    if (result.getResultCode() == RESULT_OK) {
                        // todo 
                      
                    }
                }
            });