当我取消网络请求时,Volley没有回拨

时间:2016-06-09 12:26:16

标签: android http android-volley android-networking

当凌空请求正在进行并隐藏进度条时,我正在显示一个prgressbar 在onError和onResponse回调中

在onStop活动方法中我正在调用cancelAll(TAG)

但问题是网络请求是否正在进行且有人点击锁定屏幕 调用onStop并取消请求,但由于没有回调它 我无法更新UI,活动会一直显示进度条。

必须有回调。

有没有人有解决方案。

如果取消请求,如何更新我的UI。

我想隐藏进度条并在取消请求后显示重试按钮我该如何实现

2 个答案:

答案 0 :(得分:0)

当有人点击锁定屏幕时,配置会发生变化并重新创建活动。 您可以阻止屏幕锁定(带答案的另一个question),或者您可以使用onResume()方法更新UI,当活动从锁定屏幕返回时调用该方法。

答案 1 :(得分:0)

我创建了一个库,即使在取消后也能提供回调

Fast Android Networking最适合网络电话。

Android Networking是一个功能强大的库,用于在OkHttp Networking Layer之上进行Android应用程序中的任何类型的网络连接。

Android Networking负责处理所有事情。所以你不必做任何事情,只需提出请求并听取回应。

Android Networking支持:

所有类型的HTTP / HTTPS请求,如GET,POST等 下载任何类型的文件 上传任何类型的文件(支持分段上传) 取消请求 设置任何请求的优先级(LOW,MEDIUM,HIGH,IMMEDIATE) 由于它使用OkHttp作为网络层,因此它支持:

HTTP / 2支持允许对同一主机的所有请求共享套接字 连接池减少了请求延迟(如果HTTP / 2不可用) 透明GZIP缩小了下载大小 响应缓存可以完全避免网络重复请求 Fast Android Networking Link