, но когда перед запуском приложения и отключите Интернет, не вызововает проверенный интернет -код!
Как раз при подключении интернет -подключения, и запустите приложение с подключенным интернетом, отключить Интернет Show Internet подключение или отключение!
< /p>
класс подключения к Интернету < /strong>:
< /p>
Код: Выделить всё
class NetworkConnectivity @Inject constructor(private val manager: ConnectivityManager, private val request: NetworkRequest) : ConnectivityStatus {
override fun observe(): Flow {
return callbackFlow {
val callback = object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
super.onAvailable(network)
launch { send(true) }
}
override fun onLost(network: Network) {
super.onLost(network)
launch { send(false) }
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
manager.registerDefaultNetworkCallback(callback)
} else {
manager.registerNetworkCallback(request, callback)
}
awaitClose {
manager.unregisterNetworkCallback(callback)
}
}
}
}
< /code>
viewmodel class: < /strong>
< /p>
@HiltViewModel
class DetailViewModel @Inject constructor(private val repository: MainRepository) : ViewModel() {
@Inject
lateinit var networkConnectivity: NetworkConnectivity
val detailData = MutableLiveData()
fun callDetailApi(id: Int, apiKey: String) = viewModelScope.launch {
Log.e("DetailLog","ViewModel 1")
networkConnectivity.observe().collect {
if (it) {
Log.e("DetailLog","ViewModel 2")
detailData.value = NetworkRequest.Loading()
//Response
val response = repository.remote.recipeInformation(id, apiKey)
detailData.value = NetworkResponse(response).generalNetworkResponse()
} else {
Log.e("DetailLog","ViewModel 3")
detailData.value = NetworkRequest.Error("No internet connection")
}
}
}
}
Почему бы не проверить Интернет при запуске с отключенным режимом?
Подробнее здесь: https://stackoverflow.com/questions/750 ... in-android
Мобильная версия