为了账号安全,请及时绑定邮箱和手机立即绑定

在运行到 android 中的下一条语句之前等待循环完成服务器调用

在运行到 android 中的下一条语句之前等待循环完成服务器调用

萧十郎 2023-04-26 14:22:10
我有一个要求,其中有一个具有不同类型的动态表单,如获取编辑文本、上传图像等。我面临的问题是在遍历所有情况时我必须将图像上传到服务器并在移动到下一个类型之前获取该 url。最后将表单数据发布到服务器。我尝试将所有代码放入线程中:        new Thread(new Runnable() {          @Override        public void run() {           //Code below with for loop        }        }).start();另外上传图片在 asnctask 中   for (int fieldIndex = 0; fieldIndex < section.getFields().size(); fieldIndex++) {    switch (field.getType()) {                case ("TextField"):                 //take data                 break;                case ("Number"):                    //take data                 break;                   case ("image"):                    // UPLOAD to server and get that url in Asynctask                    break;        } fieldIndex++;    }      // Once for loop done upload all data witb image url to server但它不是等待图像 URL,而是迭代循环,如果它没有递增,则再次调用上传图像函数。
查看完整描述

3 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

您可以先从列表中找到图片并上传到服务器,上传成功后响应保存图片网址。然后使用 for 循环获取所有数据,并使用图像 url 将所有数据上传到服务器。



查看完整回答
反对 回复 2023-04-26
?
桃花长相依

TA贡献1860条经验 获得超8个赞

使用 RXAndroid/RXKotlin,它是您用例的完美解决方案,因为任务相互依赖。



查看完整回答
反对 回复 2023-04-26
?
牛魔王的故事

TA贡献1830条经验 获得超3个赞

由于您使用的是线程,因此可以延迟迭代,以便它可以在某种意义上等待:

Thread.sleep("2000");

或者您可以使用:

 SystemClock.sleep("2000");

这是一个类似的功能,但忽略了 InterruptedException


查看完整回答
反对 回复 2023-04-26
  • 3 回答
  • 0 关注
  • 143 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信