首页 > 代码库 > Android程序中的notifyDataSetInvalidated()和notifyDataSetChanged()有何区别

Android程序中的notifyDataSetInvalidated()和notifyDataSetChanged()有何区别

notifyDataSetChanged方法通过一个外部的方法控制如果适配器的内容改变时需要强制调用getView来刷新每个Item的内容。

public void notifyDataSetChanged ()

该方法内部实现了在每个观察者上面调用onChanged事件。每当发现数据集有改变的情况,或者读取到数据的新状态时,就会调用此方法。

例如,我们在新浪微博中,要进行分显示刷新微博。

 

public void notifyDataSetInvalidated ()

该方法内部实现了在每个观察者上面调用onInvalidated事件。每当发现数据集监控有改变的情况,比如该数据集不再有效,就会调用此方法。

例如,如果那个数据源失效了之后就 调用notifyDataSetInvalidated()

 

notifyDataSetInvalidated(),会重绘控件(还原到初始状态)
notifyDataSetChanged(),重绘当前可见区域