如何使主线程等待,当我不知道什么时候Async任务完成工作.

sur*_*udi 4 android android-asynctask

我正在使用Async任务解析包含一些名称的xml文件,并通过主线程再次将这些名称填充到列表视图中.但在我的情况下发生的是,当Async任务仍在运行时,主线程已经将名称填充到listview,这导致listview上没有项目.我应该让主线程等到Async任务完成工作还是有其他方法来解决这个问题.如果是,当我不知道异步任务可能需要多长时间才能使主线程等待.

use*_*305 6

如果要完成AsycTask,则可以使用.get()AsyncTask中的方法.(这将阻止MainUiThread)

但我认为最好的办法是不阻塞MainUiThread你必须开始ProgressDialogonPreExecute()填充的ListViewonPostExecute()的的AsyncTask完成ProgressDialogonPostExecute().


小智 5

如果您已经使用了AsyncTask,那么在doInBackground()中执行xml fetch并更新onPostExecute()中listview的所有UI元素,这将在主UI线程上运行,并在doInBackground()之后自动运行.这样您就不必明确地让UI线程等待