Я работаю над простым приложением для Android с AWS Appsync.Я использую AWS Identity Manager для входа в систему, и он отлично работает.Однако, когда пользователь входит в систему, закрывает и снова открывает приложение, иногда приложение застревает на белом экране.
При отладке не похоже, что приложение застревает где-то в моем коде, но вместо этого, когда менеджер удостоверений делает свое дело.
Я тоже не могу найтишаблон, когда он застревает, а когда нет.
Я не знаю, делаю ли я что-то не так, но вот моя работа по аутентификации.У кого-нибудь еще была эта проблема?Мой гугл-фу ничего не находит.
class AuthenticatorActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_authenticator)
AWSMobileClient.getInstance().initialize(this).execute()
Log.i("Login", "initializing login screen")
IdentityManager.getDefaultIdentityManager().addSignInStateChangeListener(
object : SignInStateChangeListener {
override fun onUserSignedIn() {
Log.d("auth","User signed in")
}
override fun onUserSignedOut() {
Log.d("auth","User signed out")
showSignIn()
}
}
)
showSignIn()
}
private fun showSignIn(){
AWSMobileClient.getInstance().initialize(this) {
val config = AuthUIConfiguration.Builder()
.userPools(true) // show the Email and Password UI
.logoResId(R.mipmap.ic_launcher_round) // Change the logo
.backgroundColor(Color.parseColor("#4a5cc0")) // Change the background color
.isBackgroundColorFullScreen(false) // Full screen background color
.fontFamily("sans-serif-light") // font
.canCancel(true) // Add a cancel/back button
.build()
val ui = AWSMobileClient.getInstance().getClient(
this@AuthenticatorActivity,
SignInUI::class.java) as SignInUI?
ui?.login(
this@AuthenticatorActivity,
MainActivity::class.java)?.authUIConfiguration(config)?.execute()
}.execute()
}
}