被调用的notifyDataSetChanged阻止了用户交互(Android开发)

时间:2011-10-31 16:56:39

标签: android

我遇到一个问题,即多次调用notifyDataSetChanged()会冻结与listview的交互一小段时间。

基本上我的应用程序将一堆图像加载到listview中。每次加载后,它都会发布到ui线程。 ui线程将图像添加到listarray,然后调用notifyDataSetChanged()

当您在列表中选择图像时,它会突出显示。当我为每个图像调用notifyDataSetChanged()时,列表中三个点击中的每一个都可能实际选择。如果我降低notifyDataSetChanged(),我会获得更好的点击率并让它选择项目。

有人对此有何提示?

似乎6个拇指可见(没有变化)被快速抛出并再次交换,但UI没有显示它们被删除的迹象。在此期间点击是无效的数据集。

1 个答案:

答案 0 :(得分:1)

不要在UI线程中调用notifyDataSetChange()。如果它正在进行数据调用并更新ListView,它肯定会阻止用户交互。所以在后台线程中的AsyncTask做它在UI线程上没做,所以它会在用户滚动时更新列表视图