Я пытаюсь использовать последовательность (например, FileTreeWalk, возвращенный из File.walk) внутри сопрограммы, но моя реализация продолжает блокировать поток пользовательского интерфейса.
Есть ли хороший способ обрабатывать последовательности и отображать элементы в сопрограммах?
Вот фрагмент моего кода:
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()
}
}