As getActiveNetworkInfo is deprecated now in Android according to official document, I am using below implementation to get callback about Internet connectivity.
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)
}
It works well when this callback register when connection is online, but it does not work properly when internet is off and then we register callback. To test such scenarion, I kept my app closed. Then keep internet connection off and then open app.
Do we have any way to know even app is opening? If so, please help to share it. Thanks.