我有一个下载列表,它将通过下载线程回调更新,在某些情况下,列表将由NotifyDatasetChanged()更新,因此冲突将会发生,因为他们都需要调用getview(方法。
下载主题--->回电---> getview()用于指定项目视图--->更新查看者
主线程--->刷新数据---> NotifyDatasetChanged()---> call getview()--->更新查看者
如何处理这些情况?
答案 0 :(得分:0)
通常,您不希望从两个不同的线程中操纵您的数据。至少,并非没有保护。另外,您无法修改非UI线程上的视图。更新视图的后备数据(不是视图本身,只是视图所代表的项目)并调用notifyDatasetChanged()
。该列表将在此时与适配器一起使用以重新呈现视图,此时适配器可以相应地更新视图。