我有一个主要活动,可以根据情况作为调用不同活动的切入点。除其他外,我使用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()
逻辑的基本示例吗?