亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

在運行到 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 關注
  • 182 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號