如何使用协同例程(而不是一次全部)来批量更新适配器?

时间:2019-01-09 21:10:16

标签: android r performance kotlin

编辑:由于评论中的见解,我对问题做了一些修改。

因此,我正在填充一个对象列表并将其映射到另一个对象列表。代码在这里:

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) 然后在主线程上逐块更新适配器块吗?

我不确定从协同例程的何处开始。

0 个答案:

没有答案