【发布时间】:2019-10-08 08:02:40
【问题描述】:
我正在我当前的 Android 应用程序中试验 Kotlin 协程。
我有一个用例,用户可以使用远程 RestFul API 搜索文本。
我想要达到的效果如下:-
1)。使用类型“ABC”,我在这个搜索字符串中启动我的远程 API
viewModelScope.launch {
repository.searchAPI(searchString)
}
2)。用户现在键入更多,因此我的搜索字符串现在是“ABCXYZ”
我现在希望取消对“ABC”的初始搜索,并将其替换为新的搜索字符串“ABCXYZ”
我以为我可以使用此代码...
viewModelScope.launch {
if (isActive) {
this.coroutineContext.cancelChildren()
}
repository.searchAPI(searchString)
}
但是这会取消整个过程
如何使用最新的搜索字符串替换当前正在执行的搜索,从而达到预期的效果?
【问题讨论】:
-
你可能想在这种情况下使用
Flows
标签: android kotlin kotlin-coroutines