我正在使用Volley将图像列表上传到服务器。这发生在服务中。上传图像后,我将其从列表中删除。互联网连接中断时会出现问题。当互联网连接中断并再次出现时,我正在考虑将尚未上传的图像添加回请求队列。
这可能导致保存在服务器上的同一图像的多个副本,因为在获得rseponse之前,对同一图像的请求可能已经完成。
我该如何解决这个问题?
答案 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
}