我想知道asynctask何时完成,以便我可以更新UI。
任何人都可以帮忙????感谢!!!
public String[] getinfo(int id) {
String[] QueueNo = null;
try {
new DLfromServer().execute("url link"); // this is the asynctask
// want to do stuff here after the asynctask is completed
// actually I want to return a string result after the task is finished....
}
} catch (JSONException e) {
Log.e("GetJSON", "Err:", e);
}
return QueueNo;
}
答案 0 :(得分:1)
想知道asynctask何时完成,以便我可以更新 用户界面。
是的,您可以使用在onPostExecute
执行完成后调用UI线程的doInBackground
方法。
如果要在主UI线程上获取数据,则使用AsyncTask.get()方法执行AsyncTask,因为此方法会在UI线程上等待,直到doInBackground
执行完成。
String str_result= new DLfromServer().execute("url link").get();
// now use str_result for Updating result
注意: - 您需要在线程内调用AsyncTask.get()
而不是主UI线程,否则调用get()方法将冻结主线程,直到doInBackground
执行为止完整