小编G00*_*0fY的帖子

处理协程中的序列

我试图在协程中使用序列(例如从 File.walk 返回的FileTreeWalk),但我的实现一直阻塞 ui 线程。

有没有一种好的方法来处理序列并映射协程中的项目?

这是我的代码片段:

override fun onResume() {
  super.onResume()
  launch {
    apkFiles = searchMyFiles(rootDir).await()
    showMyFiles()
  }
}

private fun searchMyFiles(dir: File): Deferred<MutableList<MyFile>> {
  return async {
    dir.walk().filter { !it.isDirectory }
      .filter { it.extension.equals(MY_EXTENSION, true) }
      .map { MyFile(it, context) }.filter { it.valid 
    }.sorted().toMutableList()
  }
}
Run Code Online (Sandbox Code Playgroud)

android kotlin kotlin-coroutines

1
推荐指数
1
解决办法
577
查看次数

标签 统计

android ×1

kotlin ×1

kotlin-coroutines ×1