Android使用AsyncTask更新UI

时间:2013-03-18 04:44:50

标签: android android-asynctask android-ui

我想知道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;
}

1 个答案:

答案 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执行为止完整