【发布时间】:2018-11-16 14:02:54
【问题描述】:
我写了以下代码,我正在寻找一种方法来进行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) {
...
}
}
}
【问题讨论】:
-
你有很多方法可以做到这一点。对我来说,最简单的就是在你完成任务后添加一个监听器引用来调用。
标签: java android android-asynctask callback async-await