0

我想知道异步任务何时完成,以便我可以更新 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;
}
4

1 回答 1

1

想知道异步任务何时完成,以便我可以更新 UI。

是的,您可以使用在执行完成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执行完成

于 2013-03-18T04:48:37.020 回答