Поскольку getActiveNetworkInfo устарела в Android в соответствии с официальным документом, я использую приведенную ниже реализацию для получения обратного вызова о подключении Inte rnet.
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)
}
Это хорошо работает, когда этот обратный вызов регистрируется при подключении находится в сети, но не работает должным образом, когда inte rnet выключен, а затем мы регистрируем обратный вызов. Чтобы проверить такой сценарий, я держал свое приложение закрытым. Затем оставьте соединение inte rnet отключенным, а затем откройте приложение.
Есть ли у нас какой-либо способ узнать, открывается ли приложение? Если так, пожалуйста, помогите поделиться этим. Спасибо.