我正在使用 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/