在Android的网络请求中,为了防止多次点击引发的多次请求网络接口,可以使用unSubscribe来处理这个问题
1. 解除绑定的代码
private fun unSubscribe(subscribe: Subscription?) {
if (subscribe != null && !subscribe.isUnsubscribed) {
subscribe.unsubscribe()
}
}
2.在需要网络请求前调用这个方法,例如
private fun fetchRemoteDefault() {
unSubscribe(remoteDefaultSubscription)
remoteDefaultSubscription = HttpApiFactory.getSperoUltronServiceApi().defaultRecordTemplate
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe({ res->
remoteDefaultParam = parseRemoteDefaultCameraParam(res?.data)
}, { t ->
t.printStackTrace()
})
}