【问题标题】:Volley gives no call back when I cancel a network request当我取消网络请求时,Volley 没有回电
【发布时间】:2016-06-09 12:26:15
【问题描述】:

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

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

但问题是如果网络请求正在进行并且有人点击锁定屏幕 onStop 被调用并且请求被取消但是因为没有回调它 我无法更新 UI,Activity 一直显示进度条。

必须有一个回调。

谁有解决办法。

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

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

【问题讨论】:

  • 我相信在 volley 上取消请求没有回调。您可以在 onStop() 方法中关闭进度条。
  • 我想隐藏进度条并在请求被取消后显示重试按钮如何实现
  • progressbar设为全局变量,即可调用progressdialog.dismiss()。要显示重试,您可以使用AlertDialog
  • 但它不一定会取消请求,有时它会取消有时不是如何处理的
  • cancel 调用将取消队列中的待处理请求,而不是已经在进行中的请求。

标签: android http android-volley android-networking


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    Fast Android Networking 最适合网络通话。

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

    Android 网络可以处理所有事情。因此,您无需执行任何操作,只需发出请求并听取响应即可。

    Android 网络支持:

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 2013-05-22
      • 1970-01-01
      • 2015-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多