七牛异步上传多张图片问题:请问怎么判断图片上传异步线程全部执行完毕,拿到所有的图片地址后,再上传urllist到服务器?

谢谢2013 2016-03-27 04:00:02
请问怎么判断图片上传异步线程全部执行完毕,拿到所有的图片地址后,再上传urllist到服务器?

//首先遍历上传图片
private void UploadReportProblemsPhoto() {

for (int i = 0; i < list.size(); i++) {
Bitmap bitmap;
bitmap = PhotoUtils
.revitionImageSize(Files.photoPath + list.get(i));
uploadImg(PhotoUtils.setDateBitmap(bitmap));
}

// 上传完图片,拿到urlList,再上传数据
// UploadReportProblemsDate();
}

/*
* 上传图片到七牛
*/
private void uploadImg(final Bitmap bitmap) {
new Thread(new Runnable() {
private String shopId = "0110074";
private String userId = "669";
private String reportType = "WT";

@Override
public void run() {
// 获得七牛上传凭证uploadToken
String token = PhotoUtils.getUploadToken();
Log.i("qiniu_token", token + "");
if (token != null) {
// 图片名称为当前日期+随机数生成
String key = PhotoUtils.getFileUrlUUID(shopId, userId,
reportType);
UploadManager uploadManager = new UploadManager();
uploadManager.put(PhotoUtils.Bitmap2Bytes(bitmap), key,
token, new UpCompletionHandler() {
@Override
public void complete(
String arg0,
com.qiniu.android.http.ResponseInfo info,
JSONObject response) {

if (null != response) {

Log.i("qiniu-url", response.toString());

String json = response.toString();

BaseBean mTokenBean = PhotoUtils
.parseTokenData(json);

// 解析出返回的token
if (null != mTokenBean
&& "0".equals(mTokenBean
.getRet())) {
String url = PhotoUtils
.getRealUrl(mTokenBean
.getRetInfo());
urlList.add(url);
Log.e(TAG,
"mTokenBean.getRetInfo()="
+ mTokenBean
.getRetInfo());

}

}
}
}, null);
} else {
Log.i("fail", "上传失败");
}
}
}).start();
}
...全文
263 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
谢谢2013 2016-03-27
  • 打赏
  • 举报
回复
谢谢,忘了备注,是在Android中用到七牛图片上传。
xingzhong128 2016-03-27
  • 打赏
  • 举报
回复
下面的blog里有java多线程等待结束的方法,推荐你使用线程池的方法上传图片,然后在线程池执行完毕之后在做统一处理 http://www.tuicool.com/articles/ZvAFny

80,354

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧