Цель удаления Firebase AuthStateListener для аутентификации на onPause () и добавления его обратно на onResume () - PullRequest
0 голосов
/ 04 мая 2020

Я слежу за трехдневным грубым приложением чата firebase на udemy здесь https://classroom.udacity.com/courses/ud0352

В соответствии с ними, я подключил authStateListener для аутентификации на onCreate () .

mAuthStateListener = FirebaseAuth.AuthStateListener {
        val user: FirebaseUser? = it.currentUser
        if (user != null) {
            // User is signed in
            onSignedInInitialized(user.displayName)
        } else {
            // User is signed out
            onSignedOutCleanup()
        }
    }

Позже было предложено удалить прослушиватель состояний для функции onPause и снова подключить его к функции onStart без надлежащего объяснения.

override fun onPause() {
    super.onPause()
    if (mAuthStateListener !=null) {
        mFirebaseAuth!!.removeAuthStateListener(mAuthStateListener!!)
    }
    detachDatabaseReadListener()
    mMessageAdapter!!.clear()
}

override fun onResume() {
    super.onResume()
    mFirebaseAuth!!.addAuthStateListener(mAuthStateListener!!)
}

Я новичок в Android dev и Firebase и до сих пор не могут понять цель удаления адаптера и слушателя этих функций.

1 Ответ

1 голос
/ 04 мая 2020

Так как ваша активность вообще не видна пользователю onStop, имеет смысл останавливать вещи, которые могут привести к тому, что в вашем приложении произойдет что-то, что пользователь не сможет увидеть. Аналогично, ваша активность снова становится видимой во время onStart, поэтому вам нужно переустанавливать sh любое поведение, которое должно быть видимым.

Я предлагаю прочитать документацию для Android обратных вызовов жизненного цикла чтобы лучше понять, для чего они используются.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...