Я написал следующий код, я ищу способ сделать http-вызов, обработать данные и позволить мне вернуть результат.
Проблема заключается в асинхронной операции, когда я выполняю html.getTi()
, не дает мне никакого значения, потому что операция все еще выполняется, и я быстрее.
Я пытался использовать: synchronized (this) {..
Java, но это не похоже на работу.
Я думалоб использовании цикла ожидания:
while(html.getFlg ()! = false);
, но он требует слишком много ресурсов и зависает.
Я думал об использовании callbacks
или promises
, ноЯ не знаю, если это правильный путь.
Несколько советов?
Main.java
Html html = new Html().execute("...");
html.getTi();//return element ArrayList<ListItem>
Html.java
public class Html extends Activity {
ArrayList<ListItem> listItemList = new ArrayList<ListItem>();
public Html execute(String str) {
new Http().execute(str);
return this;
}
public ArrayList<ListItem> getTi() {
return listItemList;
}
public class Http extends AsyncTask<String, Void, Void> {
@Override
protected void onPreExecute() { super.onPreExecute(); }
@Override
protected Void doInBackground(String... params) {
...
}
@Override
protected void onPostExecute(Void result) {
...
}
}
}