Я настраиваю приложение для приема заказов на Android, и мне нужно хранить заказы в листах Google. Это работает, но пока я не добавил функцию post post в цикле for. Поэтому я исправил это, добавив задержку в цикл for. Однако есть ли другой способ сделать это? Потому что каждый раз, когда я отправляю заказ, приложение отстает до завершения цикла for.
Я добавил thread.sleep, чтобы избежать этой проблемы, например:
for (int i = 0; i < order.size(); i++){
String itemName = order.get(i);
String addOn = addOns.get(i);
String quantity = order.get(i);
quantity = quantity.substring(quantity.length() - 2, quantity.length() - 1);
itemName = itemName.substring(0, itemName.length() - 4);
System.out.println("Item ID: " + i + " " + itemName + " " + addOn + " " + quantity + " " + orderId );
try{
Thread.sleep(550); //This is the delay I added.
}catch(InterruptedException ex){
//do stuff
}
addItemToSheet(itemName,addOn,quantity,orderId);
}
if (null != getActivity()) {
((MainActivity) getActivity()).clearOrderList();
}
Вот приложение Google:
var ss = SpreadsheetApp.openByUrl("SPREADSHEET URL");
var sheet = ss.getSheetByName('Items');
function doPost(e){
var action = e.parameter.action;
if(action == 'addItem'){
return addItem(e);
}
}
function addItem(e){
var date = new Date();
var id = sheet.getLastRow();
var orderNum = e.parameter.orderNum;
var itemName = e.parameter.itemName;
var quantity = e.parameter.quantity;
var extra = e.parameter.extra;
sheet.appendRow([date,id,orderNum,itemName,quantity,extra]);
return ContentService.createTextOutput("Success").setMimeType(ContentService.MimeType.TEXT);
}
Могу ли я что-нибудь сделать? сделать либо с циклом Java, либо с приложением Google, чтобы я мог избежать использования thread.sleep, который замораживает мое приложение до завершения операции? Может быть, альтернативный способ задержки в Java? или более быстрая работа в приложениях Google?