Android volley - 避免对服务器发出多个相同类型的请求?

标签 android android-volley

我正在使用 Volley 将图像列表上传到服务器。这发生在服务中。上传图像后,我将其从列表中删除。当互联网连接中断时,就会出现问题。当互联网连接中断并再次出现时,我正在考虑将尚未上传的图像添加回请求队列。

这可能会导致同一图像的多个副本保存在服务器上,因为对同一图像的请求可能在获得响应之前已经完成。

我该如何解决这种情况?

最佳答案

我不太确定您为什么要使用服务来安排请求,因为 volley 会自动在单独的线程中运行它的请求。

不过,您只需添加监听器即可监听成功和不成功的请求结果。

您可以在使用 volley 安排请求后立即从列表中删除图像。如果成功,您可以按需要继续,如果失败,您可以简单地将它重新添加回您的列表。

public static Request getImageUploadRequest(final String image) {
     Response.Listener<T> responseListener = new Response.Listener<T>() {
                 @Override
                 public void onResponse(T response) {
                     // do whatever you like
                 }
     };

     Response.ErrorListener errorListener = new Response.ErrorListener() {
                 @Override
                 public void onErrorResponse(VolleyError error) {
                     // put the image back onto the list
                     SomeClass.addImageToList(image);
                 }
     };

     return new JsonArrayRequest(Request.Method.GET, YOUR_URL, null, responseListener, errorListener); // Use any subclass of Request you like
}

关于Android volley - 避免对服务器发出多个相同类型的请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38635037/

相关文章:

java - Android中如何从ListView中获取当前所选项目的背景颜色

android - Poco C++ for Android 链接问题

Android 在应用程序中保持屏幕开启

java - 实例化 newRequestQueue Volley

android - 正在发布 APK,0 个支持的设备。不是权限问题(我认为)

android - 渲染到纹理 : Maximum number?

android - 如何使用 Google Volley 将响应 header 字段返回到 Android/Java 中的 HTTP GET 请求的主要方法?

android - 如何在android中的截击中发送参数数组

java - 安卓工作室 : 2 different activities in 1 button

android - 带有 JSON 正文的 StringRequest