我有这个代码来获取互联网连接状态:
override fun getStatus() = callbackFlow {
val callbackFlow = object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
trySend(Status.Available)
}
override fun onLost(network: Network) {
trySend(Staus.Lost)
}
override fun onUnavailable() {
trySend(Status.Unavailable)
}
}
manager.registerDefaultNetworkCallback(callbackFlow)
awaitClose {
manager.unregisterNetworkCallback(callbackFlow)
}
}.distinctUntilChanged()
我从ViewModel类调用DIN函数:
fun getStatus() = repo.getStatus()
在活动中,我有:
val status = viewModel.getStatus().collectAsState(
initial = Status.Unavailable
).value
Text(
text = "$status"
)
问题是,当我启动应用程序时,当我连接时,在很短的一段时间内,我会得到Unavailable
,然后是Available
.如何摆脱Unavailable
人?