在我们的项目中,我们决定借助CancellationToken.
由于项目中作品的结构,我需要一个分层取消机制。通过分层,我的意思是父源取消会导致所有子源被递归取消,但子源取消不会传播到父源。
.NET 中是否有开箱即用的此类选项?如果没有,我不确定向父令牌注册委托是否足够,或者应该进一步考虑。
我有一个 Android 库,我在其中监听网络变化,我想做的是,使用 Flow/launch of coroutines 观察这些变化
这是我的 NetworkReceiver,它让我知道连接何时发生变化
我采用了一个变量isNetworkConnectionActive,该变量init在库中设置为 false,并根据网络更改在以下函数中设置为 true false
class ConnectionChangeReceiver: BroadcastReceiver() {
override fun onReceive(context: Context?, p1: Intent?) {
if(isNetworkConnectionActive(context)) {
OfflineDataLibrary.isNetworkConnectionActive = true
Toast.makeText(context, "isNetworkConnectionActive - YES", Toast.LENGTH_LONG).show()
} else {
OfflineDataLibrary.isNetworkConnectionActive = false
Toast.makeText(context, "isNetworkConnectionActive - NO", Toast.LENGTH_LONG).show()
}
}
fun isNetworkConnectionActive(context: Context?): Boolean {
val connectivityManager: ConnectivityManager = context?.getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
var isConnectionActive = false
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
val nw = connectivityManager.activeNetwork ?: return false
val …Run Code Online (Sandbox Code Playgroud) android flow kotlin kotlin-coroutines kotlin-coroutines-flow