如何用活动结果API替换startActivityForResult?

问题描述 投票:2回答:1

我有一个主要活动,可以根据情况作为调用不同活动的切入点。除其他外,我使用Firebase Auth来管理用户登录:

startActivityForResult(
            AuthUI.getInstance().createSignInIntentBuilder()
                    .setAvailableProviders(providers)
                    .build(),
            RC_SIGN_IN)

我覆盖onActivityResult()以区分返回的意图/数据,例如:

 override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    super.onActivityResult(requestCode, resultCode, data)
    when (requestCode) {

        REQUEST_CODE_1 -> {
          // update UI and stuff
        }

        RC_SIGN_IN -> {
          // check Firebase log in
        }
        // ...
    }
}

使用documentation强烈推荐的Activity Result API,我得到我应该在prepareCall()之前创建ActivityResultLauncher,并确保启动时该活动处于已创建状态,但我仍然不这样做了解如何优雅地(至少在一处)像onActivityResult()中那样处理多个活动结果。

this article,似乎我需要实现ActivityResultContract类型的子内部类(因此有多个prepareCall()?),因为它们应该是不同的合约 , 我对么?有人可以告诉我一些反映上述onActivityResult()逻辑的基本示例吗?

我有一个主要活动,可以根据情况作为调用不同活动的切入点。除其他外,我使用Firebase Auth来管理用户登录:startActivityForResult(...
android android-activity androidx onactivityresult
1个回答
0
投票
您可以根据需要调用尽可能多的活动来获得结果,并且每个活动都有单独的回调:
© www.soinside.com 2019 - 2024. All rights reserved.