我看到,这一内容有例,而Im 问,是否有客观理由使用Coroutines 实施这一条?
In case the link dies the code from example is below:
val watcher = object :TextWatcher{
private var searchFor = ""
override fun onTextChanged(s: CharSequence?, start: Int, before: Int, count: Int) {
val searchText = s.toString().trim()
if (searchText == searchFor)
return
searchFor = searchText
launch {
delay(300) //debounce timeOut
if (searchText != searchFor)
return@launch
// do our magic here
}
}
override fun afterTextChanged(s: Editable?) = Unit
override fun beforeTextChanged(s: CharSequence?, start: Int, count: Int, after: Int) = Unit
}
EDIT: 为澄清,delay
目 录 可将Coroutines替换为Anderson Handler postDelayed
的延迟。 不同之处在于,Coroutines将停止拖延,而Anderson Handler将履行拖延义务,将电文储存在即将在稍后时间执行的路口。 效果似乎相同,但不同之处在于拖延是如何实施的。 是否有客观原因,为什么在座各位会更好?
EDIT2:引人指出,在Coroutine 派遣者将使用像安乐器这样的东西。 Refer to this for more details. 这意味着,对简单拖延采用对应办法,是值得的。