statrActivityForResulu弃用怎么办

我想用statrActivityForResulu(intent,1)时发现这个被弃用了,上网想查是用registerForrActivityResulu代替了,新的怎么用呀

微信找一下刘望舒的公众号,我记得前几天他发了一个文章关于statrActivityForResulu弃用的

internal class ResultContract :
    ActivityResultContract<Boolean?, String?>() {
    override fun createIntent(context: Context, input: Boolean?): Intent {
        val intent = Intent()//
        intent.action = Intent.ACTION_GET_CONTENT
        intent.type = "*/*"
        intent.addCategory(Intent.CATEGORY_OPENABLE)
        return intent
    }

    override fun parseResult(resultCode: Int, @Nullable intent: Intent?): String? {

        if (intent == null) {
            return "";
        }
        val uri = intent.data;
        //文件路径
        val mFilePath = PickUtils.getPath(BaseApplication.getInstance(), uri);

        return mFilePath
    }
}  

var launcher = registerForActivityResult(ResultContract()) {
//接收返回值
}
// 上面的代码 与onResume onPause 同级

launcher.launch(true)//启动activity 至于如何复用 启动多个不同activity 相信你可以想到办法的 这是原生写法