长话短说,我想使用Retrofit 2将多个图像上传到我的服务器。我想根据List图像的大小循环发送单个图像的过程,但是异步,所以第二次上传仅在首次上传时运行成功了。有些人告诉我,我应该将一个文件数组发送到我的服务器并在那里解析数组,但我想知道在客户端上传时是否有错误。这样,如果第一次循环出现错误(网络问题),第二次循环将停止运行。
我真的不清楚如何完成上述任务,但这是一个开始。
public class UploadAllImages extends AsyncTask<Void, Void ,Void>{
@Override
protected Void doInBackground(Void... params) {
doSingleUpload(image);
return;
}
@Override
protected void onPostExecute(Void aVoid) {
super.onPostExecute(aVoid);
if(upload == succeeded){
new UploadAllImage().execute();
}
}
}
答案 0 :(得分:0)
我可能会这样解决:
public class UploadImages extends AsyncTask<Image, Integer, Boolean> {
@Override
protected Boolean doInBackground(Image... images) {
List<Image> remainingImages = new ArrayList<>(Arrays.asList(images));
while (!remainingImages.isEmpty()) {
boolean success = doSingleUpload(remainingImages.remove(0));
if (!success) {
return false;
}
}
return true;
}
@Override
protected void onPostExecute(Boolean success) {
// Handle the result of all uploads
}
}