我已将上下文切换为Dispatcher.Main以显示UI,但在runBlocking上获取了数据,但无法在RecylerView中显示]
runBlocking { var fruits = fetchFruitList() withContext(Dispatchers.Main){ recyclerView.adapter = FruitAdapter(fruits); } }
我在做什么错,将数据从一个Dispatcher返回到另一个Dispatcher的适当方法是什么?
我尝试了另一种方法
GlobalScope.launch { withContext(Dispatchers.IO){ var fruits = arrayOf("Grapes","Apple","Mango","TuttiFruit","PineApple", "Pomegrante","Apple","Mango","TuttiFruit","PineApple", "Pomegrante","Apple","Mango","TuttiFruit","PineApple").toList() return@withContext } recyclerView.adapter = FruitAdapter(fruits) }
但以上述方式
I have to declare fruits as global
,而我不想让它全局工作。有没有一种方法可以将数据从一个“调度程序队列”返回到另一个队列
<<我必须从Api中获取数据(IO操作)并在RecyclerView(主线程操作)中显示该数据
这是因为您必须在获取数据后切换上下文: