在Fragment 和 Activiiy之间进行调用,,,代替原来的StartActiviForResult,因为这个方式会把所有的回调结果都放在这一个方法里,会导致这一块代码逻辑复杂,代码冗长,不便阅读。
 在的Result API方式中,我们可以根据自己的需求自定义协议,让每一个协议只做对应的一件事,让代码更加清晰。
自定义协议方式使用:
 1.添加依赖
implementation 'androidx.activity:activity:1.2.0-beta01'
implementation 'androidx.fragment:fragment:1.3.0-beta01‘
2.定义协议
 3.注册协议获取ActivityResultLauncher
 4.用ActivityResultLauncher.launch()启动页面跳转
直接使用Google预定义的协议,如Activity
 1.根据具体需求注册协议获取ActivityResultLauncher如
private final ActivityResultLauncher<Intent> myResultLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
        new ActivityResultCallback<ActivityResult>() {
            @Override
            public void onActivityResult(ActivityResult result) {
                if(result.getResultCode() == Activity.RESULT_OK){//如果是一类任务的结果回调,可用if再进行逻辑处理。也可以不用if
                    //回调执行
                }
            }
        });
2.启动页面跳转
if(view == button){
   myResultLauncher.launch(new Intent(this,SecondActivity.class));
}
3.在SecondActivity中
  setResult(RESULT_OK); //如果回调方法中没有加判断,可以什么都不做。










