编辑:由于评论中的见解,我对问题做了一些修改。
因此,我正在填充一个对象列表并将其映射到另一个对象列表。代码在这里:
val backingData: List<AddLeadViewData> = leadList
.filter { it.address.latitude != null || it.address.longitude != null }
.map {
val name = if (it.businessName != null && it.businessName != "") it.businessName
else if (it.primaryContact != null && it.primaryContact.fullName != null && it.primaryContact.fullName != "") it.primaryContact.fullName
else it.status.name ?: ""
AddLeadViewData(name, it.address.singleLineAddress()
?: "", false, it.status.buttonDrawable, it.id!!, it.status.name, it.address.city, it.address.state, it.address.postalCode)
}.
整个序列平均要花5秒钟,这不好,因为用户正在等待此信息。一些评论建议我按块进行此操作,这在Kotlin中很容易。但是我该如何编写一个协同例程,该例程将:
获取数据 然后将列表分成大块 逐块映射数据(objA到objB) 然后在主线程上逐块更新适配器块吗?
我不确定从协同例程的何处开始。