一、现象

在新版androidX里面,startActivityForResult()被标注弃用,推荐使用registerForActivityResult()方法
二、解决方案 :
使用registerForActivityResult()方法
但是注意了:
1、registerForActivityResult只能在onCreate()中初始化注册。onstart()之后就不能注册了。
2、registerForActivityResult()方法不要放在setOnClickListener()里面,要放在onCreate里。
使用如图
  private ActivityResultLauncher launcher;
    public void initActivityResult() {
        launcher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(), new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult result) {
                if (result.getResultCode() == RESULT_OK) {
                    Logger.d("onActivityResult: data = " + result.getData());
                }
            }
        });
    }
    
      //跳转调用
       Intent intent = new Intent(this, BaiduASRDigitalDialog.class);
        // running = true;
        launcher.launch(intent);
三、关于registerForActivityResult()方法
两个参数:
第一个是 ActivityResultContract
第二个是 ActivityResultCallback
返回值:
它返回一个 ActivityResultLauncher 对象
用法:调用 ActivityResultLauncher的 launch方法可以跳转到另一个Activity或者发起权限请求



















