【发布时间】:2020-08-10 19:14:11
【问题描述】:
我有一个主要活动作为调用不同活动的入口点,具体取决于条件。其中,我使用 Firebase Auth 来管理用户登录:
startActivityForResult(
AuthUI.getInstance().createSignInIntentBuilder()
.setAvailableProviders(providers)
.build(),
RC_SIGN_IN)
我覆盖onActivityResult()来区分返回的intent/data,例如:
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 强烈推荐的活动结果API,我知道我应该在ActivityResultLauncher 之前创建prepareCall(),并确保在我启动时活动处于创建状态,但我仍然没有不了解如何优雅地处理多个活动结果(至少在一个地方),例如 onActivityResult()。
看着this article,看来我需要实现多个 ActivityResultContract 类型的子内部类(因此多个prepareCall() 的?),因为它们应该是不同的合同,我说的对吗?有人可以给我看一些反映上述onActivityResult()逻辑的骨架示例吗?
【问题讨论】:
标签: android android-activity androidx onactivityresult