Этот код взят из довольно сложной кодовой базы.Надеюсь, я извлек соответствующие части без недостающей информации.Представьте себе фрагмент / действие, отображающее ваш почтовый ящик, который содержит много чатов.
Код примерно такой:
fun initData() {
listChats = ArrayList()
listChats.add(....))
chatAdapter!!.updateListChat(listChats)
getDiscussionList()
}
getDiscussionList(){
pbChat.visibility = View.VISIBLE
lvChat.visibility = View.GONE
listChats.clear();
// do HTTP GET to populate listChats
// blah blah blah
pbChat.visibility = View.GONE
lvChas.visibility = View.VISIBLE
}
За исключением отображения / скрытия ProgressBar и ListView, большая часть работыв getDiscussionList () анализирует JSON из HTTP GET и правильно заполняет listChat.Это отлично работает.Теперь не хватает функции автообновления.
Я добавил небольшую модификацию, теперь код выглядит следующим образом:
fun initData() {
listChats = ArrayList()
listChats.add(....))
chatAdapter!!.updateListChat(listChats)
getDiscussionList()
activity.runOnUiThread {
Timer().schedule(5000){
getDiscussionList()
}
}
}
Я запускаю этот код и в итоге получаю «Только исходный поток»который создал иерархию представлений, может касаться ее представлений.Как правильно выполнять getDiscussionList () каждые X секунд, тогда?