如何处理线程和主线程更新listitem时的冲突

时间:2014-03-14 02:03:07

标签: android listview

我有一个下载列表,它将通过下载线程回调更新,在某些情况下,列表将由NotifyDatasetChanged()更新,因此冲突将会发生,因为他们都需要调用getview(方法。

下载主题--->回电---> getview()用于指定项目视图--->更新查看者

主线程--->刷新数据---> NotifyDatasetChanged()---> call getview()--->更新查看者

如何处理这些情况?

1 个答案:

答案 0 :(得分:0)

通常,您不希望从两个不同的线程中操纵您的数据。至少,并非没有保护。另外,您无法修改非UI线程上的视图。更新视图的后备数据(不是视图本身,只是视图所代表的项目)并调用notifyDatasetChanged()。该列表将在此时与适配器一起使用以重新呈现视图,此时适配器可以相应地更新视图。