回调startActivityForResult() 方法的简单替换

240 阅读1分钟

关于startActivityForResult()这个带回调的跳转,官方已经废弃很久了,但从今年开始又学安卓,发现这个方法一些讲师依然在教授,虽然新替换的方法并不难,但还是简单记录一下。 使用startActivityForResult()的目的是确认回调后执行逻辑。新的方法:

// 定义跳转
ActivityResultLauncher<Intent> intentActivityResultLauncher =
        registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),
                result -> {
                    Intent data = result.getData();
                    if (result.getResultCode() == RESULT_OK && data != null) {
                       // 一些逻辑
                    }

                });
                
// 使用时
Intent intent = new Intent(this,跳转到的.class);

// 执行跳转
intentActivityResultLauncher.launch(intent);

通常此类跳转都是写在onClick的监听里,要注意ActivityResultLauncher的创建位置。