先贴出官方对此的api链接:
https://kotlinlang.org/api/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.flow/callback-flow.html
其实两者在使用上的区别,说白了就一句话:
Example of usage that converts a multi-shot callback API to a flow.
For single-shot callbacks use suspendCancellableCoroutine.
明白了吧。
Hmm…
翻译过来就是:
如果是多次回调就用callbackFlow,一次回调就用suspendCancelableCoroutine
那什么又是多次回调?一次回调?其实很简单,举个例子:
//多次回调
val download = object: DownloadCallback{
fun onDownloadProcess(process: Int) {
//下载进度会多次通过该方法回调
}
}
通过上面的例子,很容易理解这里所说的多次和单次回调,所以在实际使用当中应根据具体业务逻辑合理选择。
本文解释了Kotlin的callbackFlow与suspendCancellableCoroutine在处理回调上的差异,强调了根据业务逻辑选择合适函数的重要性,以`DownloadCallback`为例说明多次回调和单次回调的区别。
1126





