我使用AsyncTask
并在doInBackground()
我有一个循环,我正在进行大量的网络调用。每次调用都会为我提供一个新的数据对象,我想将其添加到listView
。
我知道我可以在notifyDataSetChanged()
上致电onPostExecute()
并使用我的所有项目更新我的列表,但我想知道当我收到时我是否有可能以某种方式致电notifyDataSetChanged()
新项目并在同一时刻更新我的listView
,而不必等到doInBackground
上的所有工作完成。
如果我没有办法用AsyncTask做到这一点,那么有什么方法可以处理类似的东西吗?
谢谢
答案 0 :(得分:4)
从publishProgress(...)
致电doInBackground(...)
并覆盖onProgressUpdate(...)
中的AsyncTask
并在那里致电notifyDataSetChanged()
。
从publishProgress(...)
调用doInBackground(...)
指示AsyncTask
在主UI线程上调用它onProgressUpdate(...)
,因此您可以从那里更新ListView
。< / p>