#android #kotlin #android-fragments #handler #runnable
#Android #котлин #android-фрагменты #обработчик #работоспособный
Вопрос:
внутри этого есть одно действие, в котором у меня есть ViewPager с 3 одинаковыми фрагментами, внутри этого фрагмента у меня есть обработчик, проблема в том, что когда я вхожу в это действие в первый раз и завершаю действие, тогда обработчик останавливается, но когда я снова вхожу, а затем выхожу из этого действия, обработчик не останавливается. Я также вызываю handler.removeCallbacksAndMessages(null) в onDestroy() и onDestroyView() , пожалуйста, помогите мне с этим.
runnable = Runnable {
.
.
.
handler!!.postDelayed(runnable, 10000)
}
loadImage()
Ниже приведена моя функция загрузки изображения
fun loadImage() {
handler!!.removeCallbacksAndMessages(null)
.
.
.
handler!!.postDelayed(runnable, 0)
}
В onCraeteView фрагмента я вызываю fun LoadImage() , он запускает обработчик, я хочу вызывать этот fun LoadImage() несколько раз в текущем фрагменте каждые 10 секунд, но обработчик !!.removeCallbacksAndMessages(null) в fun LoadImage() не работает.
Я также вызываю ниже, но когда я уничтожаю обработчик фрагмента, он все еще работает
override fun onDestroyView() {
handler!!.removeCallbacksAndMessages(null)
super.onDestroyView()
}
override fun onDetach() {
super.onDetach()
handler!!.removeCallbacksAndMessages(null)
}
override fun onDestroy() {
super.onDestroy()
handler!!.removeCallbacksAndMessages(null)
}
Комментарии:
1. Используйте обработчик !!.removeCallbacks(выполняемый);
2. @Piyush Я пробовал это, но все равно не работает.