gpt4 book ai didi

android - 如何捕获没有互联网异常错误?

转载 作者:行者123 更新时间:2023-11-30 05:02:06 24 4
gpt4 key购买 nike

我正在使用 kotlin MVVM 模式开发一个 android 应用程序,问题是我正在从网上获取数据,甚至在没有互联网连接的情况下我也设置了异常(exception),即使应用程序总是因 LOGCAT 而崩溃:非法异常:无法连接到......请问有什么帮助吗?我尝试添加拦截器,然后捕获这个:

class NoConnectivityException () : IOException()
class ApiException() : IOException()

//and inside reopistory
//

try {
val fetchData =
retrofitInterface
.getAll()
.await()
_downloadedResponse.postValue(fetchData)
} catch (e: NoConnectivityException) {

} catch (a: ApiException) {

}


//my interceptor interface :
interface ConnectivityInteceptor : Interceptor
//my interceptor implementation :

class ConnectivityInteceptorImpl(
context: Context
) : ConnectivityInteceptor {
private val appContext = context.applicationContext
override fun intercept(chain: Interceptor.Chain): Response {
if (!isOnLine())
throw NoConnectivityException()
return chain.proceed(chain.request())
}

private fun isOnLine(): Boolean {
val connectivityManager = appContext.getSystemService(Context.CONNECTIVITY_SERVICE)
as ConnectivityManager
val networkInfo = connectivityManager.activeNetworkInfo
return networkInfo != null && networkInfo.isConnected

}
}

最佳答案

要检测设备上的互联网连接,除了上述代码外,您还需要在 list 中添加权限。

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

关于android - 如何捕获没有互联网异常错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58084200/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com