Android排球 - 避免多次向服务器发出同类请求?

时间:2016-07-28 11:28:14

标签: android android-volley

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

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

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

我不太确定你为什么要使用服务来安排请求,因为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
}