Действие, вероятно, выполняется после того, как пользователь покидает фрагмент и вызывается onDestroy()
.В этом состоянии во фрагменте не будет экземпляров View.
Простой обходной путь - создать глобальную переменную для проверки состояния, созданного вашим фрагментом.Установите значение true
в onViewCreated()
и false
в onDestroyView()
(до супер звонка).Затем проверьте это значение внутри Runnable перед выполнением вашей логики.
Лучшее решение (хотя это зависит от условий гонки и требует, чтобы каждый Runnable был назначен глобальной переменной), может использовать метод Handler.removeCallbacks()
ипередать все ваши Runnables.
override fun onDestroyView() {
handler.removeCallbacks(numberRunnable)
}
Еще одна возможность - просто сказать, что представление обнуляемо:
mobileView?.let {
//Your stuff goes in here
//You can reference mobileView using "it"
}