Я изучаю сопрограммы и пытался сделать небольшой эксперимент.Я хотел получить данные из бэкэнда и заполнить их, используя утилиту восстановления.
Итак, для этого:
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout....)
val linearLayoutManager = LinearLayoutManager(this)
recyclerview.layoutManager = linearLayoutManager
GlobalScope.launch {
val dataList = Repository().getData() //
runOnUiThread {
adapter = Adapter(dataList, ..., listener)
bodyPart.adapter = adapter
adapter.notifyDataSetChanged()
}
}
}
suspend fun getData(): List<data> = coroutineScope {
return@coroutineScope if (...) {
getFromApi()
} else {
getLocal()
}
}
Но это не работает вообще.Функция адаптера типа onCreateViewHolder
не вызывается.Всякий раз, когда я перемещаю часть настройки данных адаптера за пределы GlobalScope.launch
, она работает нормально.Я не понимаю, почему это происходит и как я должен решить эту проблему.Заранее спасибо!:)