amt*_*rax 5 android kotlin android-room kotlin-coroutines
出于 Room db 的目的。我想在回收器视图中运行一些协程。
必要的挂起函数作为类参数处理:
class RecyclerAdapter (private val exist : suspend (lastName : String) -> Boolean)
Run Code Online (Sandbox Code Playgroud)
然后,当需要时,我使用以下结构:
GlobalScope.launch(Dispatchers.IO) {
if (exist(dataSet[position].lastName))
[...]
Run Code Online (Sandbox Code Playgroud)
我不确定使用全局范围是否是最佳实践。我考虑过使用lifecycleScope,但在 Adapter 中lifecycleOwner不可用,将其作为参数处理不是一个好的做法。
你们有什么建议?
我认为这违背了单一责任模式,因为适配器的目的主要是照顾数据的布局方式。
我会将此信息移动到项目列表中,并从视图模型中进行调用,方法如下:
viewModelScope.launch{}
不是更新LiveData/ StateFlow,从视图中观察它,并将列表相应地提交给适配器
| 归档时间: |
|
| 查看次数: |
7596 次 |
| 最近记录: |