Android:如何让UI线程等到异步任务完成

时间:2011-08-18 06:36:48

标签: android thread-safety android-asynctask

目前,我在AsycTask中执行一项繁重的任务,上传图像。当我通过AsycTask执行此操作时,应用程序将关闭,并且logcat中不会显示任何错误消息。

    private class SendIncidentTask extends AsyncTask<Double, Void, Void>{

            @Override
            protected Void doInBackground(Double... params) {
                lat1 = params[0];
                log1 = params[1];
                SendingIncident sincident  = new SendingIncident();
                sincident.sendInciWithoutAttachment(lat1, log1);
                sincident.submitWithAttachment(lat1, log1);
                return null;
            }

   }

我认为当UI线程和AsycTask并行执行时会出现问题。如何让UI线程等到AsycTask完成?

提前致谢。

2 个答案:

答案 0 :(得分:5)

使用onPostExecute方法加载UI。这在doInBackground完成后自动调用

答案 1 :(得分:2)

我认为你错过了真正的问题,做你想做的事会导致ANR。但是,如果您希望UI线程等待,只需将其作为活动的方法执行,而不是作为AsyncTask执行。