Jig*_*gar 8 android android-connectivitymanager
根据官方文档,由于 getActiveNetworkInfo 现在在 Android 中已被弃用,因此我使用下面的实现来获取有关互联网连接的回调。
private val connectivityManager: ConnectivityManager by lazy {
getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
}
private val builder: NetworkRequest.Builder by lazy {
NetworkRequest.Builder()
}
private val networkCallback: NetworkCallback by lazy {
object : NetworkCallback() {
override fun onAvailable(network: Network?) {
println("Connection is online")
}
override fun onLost(network: Network?) {
println("Connection is offline")
}
}
}
override fun onResume() {
super.onResume()
connectivityManager.registerNetworkCallback(builder.build(), networkCallback)
}
override fun onPause() {
super.onPause()
connectivityManager.unregisterNetworkCallback(networkCallback)
}
Run Code Online (Sandbox Code Playgroud)
当连接在线时注册此回调时,它可以正常工作,但当互联网关闭然后我们注册回调时,它不能正常工作。为了测试这种情况,我关闭了我的应用程序。然后保持互联网连接关闭,然后打开应用程序。
我们有什么办法知道应用程序正在打开吗?如果有的话,请帮忙分享一下。谢谢。
小智 1
根据你的问题,我建议阅读Android文档的这一部分。您正在使用 onPause() 和 onResume(),您应该尝试 onStop()。
但我认为你必须在逻辑connectivityManager.unregisterNetworkCallback(networkCallback) 之后调用 super.onPause() 因为它会在调用你的方法之前暂停应用程序。
| 归档时间: |
|
| 查看次数: |
1340 次 |
| 最近记录: |