根据官方文档,由于 getActiveNetworkInfo 现在在 Android 中已被弃用,我正在使用以下实现来获取有关 Internet 连接的回调。
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)
}
连接在线的时候注册这个回调很好用,但是断网的时候注册回调就不行了。为了测试这样的场景,我关闭了我的应用程序。然后关闭互联网连接,然后打开应用程序。
我们有什么办法知道应用程序正在打开吗?如果有,请帮忙分享一下。谢谢。