override fun setR2SettingData(cmd: String, status: String) {
val requestbuilder = NetworkRequest.Builder()
requestbuilder.addTransportType(NetworkCapabilities.TRANSPORT_WIFI)
connectivityManager.requestNetwork(
requestbuilder.build(),
object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {
val builder1 = OkHttpClient.Builder()
builder1.socketFactory(network.socketFactory)
val apiService =
RetrofitInstance.getApiServiceXMLForR2(
Constants.BASE_URL_CAMERA_R2,
builder1
)
trackDisposable(
apiService.requestCameraR2URLForSettingResponse(cmd, status)
.subscribeOn(schedulerProvider.io())
.observeOn(schedulerProvider.ui())
.subscribe()
)
}
})
}
这段代码我正在使用网络调用,当我们调用 API 时,我收到以下错误:android.net.ConnectivityManager$TooManyRequestsException
Process: com.rovedashcam.android, PID: 25285
android.net.ConnectivityManager$TooManyRequestsException
at android.net.ConnectivityManager.convertServiceException(ConnectivityManager.java:3378)
at android.net.ConnectivityManager.sendRequestForNetwork(ConnectivityManager.java:3564)
at android.net.ConnectivityManager.requestNetwork(ConnectivityManager.java:3585)
at android.net.ConnectivityManager.requestNetwork(ConnectivityManager.java:3661)
at android.net.ConnectivityManager.requestNetwork(ConnectivityManager.java:3622)
at
connectivityManager.requestNetwork
谁能告诉我为什么我会收到此错误?
我尝试通过集成解决这个问题connectivityManager
with fragment
生命周期方法
这是我的实现。
-
创建类属性
private var connectivityManager:ConnectivityManager? = null
private val connectionCallback = object : ConnectivityManager.NetworkCallback() {
override fun onAvailable(network: Network) {//perform your stuff}
override fun onLost(network: Network) {//perform your stuff}
}
-
初始化并注册ConnectivityManager
in onCreateView()
connectivityManager = requireContext().getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
connectivityManager?.registerDefaultNetworkCallback(connectionCallback)
-
unregisterNetworkCallback
in onPause()/onStop()/onDestroy()
根据您的要求
connectivityManager?.unregisterNetworkCallback(connectionCallback)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)