У меня есть основное действие, которое служит точкой входа для вызова различных действий, в зависимости от условия. Среди прочего, я использую Firebase Auth для управления входом пользователя:
startActivityForResult(
AuthUI.getInstance().createSignInIntentBuilder()
.setAvailableProviders(providers)
.build(),
RC_SIGN_IN)
Я перезаписываю onActivityResult()
, чтобы различать guish возвращенное намерение / данные, например:
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
}
// ...
}
}
С помощью API Result Activity, который настоятельно рекомендуется в документации , я получаю, что должен сделать prepareCall()
до ActivityResultLauncher
и убедиться, что активность находится в созданном состоянии при запуске, но Я до сих пор не понимаю, как изящно обрабатывать несколько результатов деятельности (по крайней мере, в одном месте), как в onActivityResult()
.
Глядя на в этой статье , кажется, мне нужно реализовать множественные дочерние внутренние классы типа ActivityResultContract
(следовательно, множественные prepareCall()
?), Потому что они должны быть разными контрактами , я прав? Может кто-нибудь показать мне пример скелета, который отражает выше onActivityResult()
logi c?