Как правильно обрабатывать addListenerForSingleValue после onSaveInstanceState - PullRequest
0 голосов
/ 03 апреля 2019

Я давно пользуюсь Firebase и очень ценю его гибкость при извлечении некоторых данных из его базы данных в реальном времени с минимальными усилиями.Однако у меня возникли некоторые проблемы при обработке результата вызова addListenerForSingleValueEvent.Каждый раз, когда некоторая операция пользовательского интерфейса должна быть выполнена после того, как она возвращает мое приложение, падает, если onSaveInstanceState уже был вызван.Есть ли способ прервать операцию во время onPause () так же, как мы можем сделать с addValueEventListener?

Я знаю, что решение может проверять, был ли уже вызван onSaveInstanceState, но все решение, которое я пробовал, кажется ненадежным,Я пытаюсь проверить такие методы, как:

isAdded()
isVisible()
isFinishing()

как на фрагменты, так и на действия.

Пример моих попыток:

dbref.addListenerForSingleValueEvent(object : ValueEventListener {
    override fun onDataChange(dataSnapshot: DataSnapshot) {
        if(isAdded && isVisible && activity?.isFinishing == false){
            GenericMessageDialog.newInstance(getString(R.string.generic_error_title), errorMessage).show(activity?.supportFragmentManager, "ed")
    }
}

Иногда выбрасывается это исключение

Fatal Exception: java.lang.IllegalStateException
Can not perform this action after onSaveInstanceState
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...