android - NetworkCallback 在启动时不起作用(API 版本 22 到 API 版本 26)
问题描述
我有一个 registerNetworkCallback 函数:
private fun registerNetworkCallback() {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
connectivityManager?.registerDefaultNetworkCallback(networkCallback)
} else {
connectivityManager?.registerNetworkCallback(builder.build(), networkCallback)
}
}
还有一个 networkCallback
val networkCallback = object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
super.onAvailable(network)
// do something
}
override fun onLost(network: Network) {
super.onLost(network)
// do something
}
}
在 API 版本 27 和更高版本上,这个东西工作得很好。当我打开应用程序时,它会检查网络是否可用,然后我可以在 onAvailable 或 onLost 函数中执行某些操作。但是在 API 22 上,这在启动时不起作用,但如果我之后更改网络状态,它就会起作用。我想知道为什么它在开始时也不发出事件?有什么建议么。
解决方案
推荐阅读
- python - 使用 selenium python 在下拉菜单中选择选项后,在文本框中输入一个值
- macos - SecTaskLoadEntitlements failed 错误有什么问题
- stream - Flink 中的水印和触发器有什么区别?
- excel - Excel 数据透视表 - 列的百分比
- linux - Presto DB + 在某些 presto 工作人员宕机的情况下我们可以做什么 + 自动启动
- node.js - ReactJS 保护路由和嵌套路由
- ios - Xamarin IOS NSInvalidArgumentException 原因:***
- jsr352 - Java EE Batch (JSR 352) 会成为 quarkus 的一部分吗?
- jenkins - 詹金斯管道 - 删除@tmp文件夹
- jquery - 尝试使用jquery上传图片