android - Recycler Adapter 中的协程

标签 android kotlin android-room kotlin-coroutines

对于房间分贝的目的。我想在 Recycler View 中运行一些协程。
必要的挂起函数作为类参数处理:

class RecyclerAdapter  (private val  exist : suspend (lastName : String) -> Boolean) 
然后,当需要时,我使用以下构造:
GlobalScope.launch(Dispatchers.IO) {
   if (exist(dataSet[position].lastName))
       [...]
我不确定使用 Global Scope 是否是最佳实践。我考虑使用 lifecycleScope但在适配器 lifecycleOwner不可用,将其作为参数处理不是一个好习惯。
你们有什么建议?

最佳答案

我认为这违背了单一职责模式,作为 的目的。适配器 主要是照顾数据如何布局。
我会将这些信息移动到项目列表中,然后从 View 模型中调用:viewModelScope.launch{}比更新 LiveData/StateFlow ,从 View 中观察它,并相应地将列表提交给适配器

关于android - Recycler Adapter 中的协程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67431845/

相关文章:

android - GCM - GCMBroadcastReceiver 没有被调用

android - 从 RecyclerView 获取 EditTexts 值

android - 在 google play (Android Market) 上上传屏幕截图时无法解析响应错误

kotlin - 如何在 kotlin 中对字符串数组进行排序

android - RecyclerView 仅显示来自 Firebase 的一项

kotlin - 如何使用协程从 Room 返回单个(非 LiveData)对象

android - 在多个进程中获取 LiveData 更新

android - 新行的损坏插入 ID

android - 如何针对不同的android ABI选择不同的minSdkVersion?

android - 实现 Google Play 结算库版本 2