码迷,mamicode.com
首页 > 其他好文 > 详细

ContentObserver与DatasetObserver区别

时间:2014-08-18 16:06:02      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:style   color   使用   io   数据   ar   art   div   

 
 

1. ContentObserver

    ContentObserver主要是通过Uri来监测特定的Databases的表,如果该Databases表有变动则会通知更新cursor中的数据。

    如果使用ContentProvider操作数据库,在ContentProvider的query()方法中会通过Cursor.setNotificationUri()注册uri描述的表,在insert,delete,query操作之后都会调用getContext().getContentResolver().notifyChange()。是当uri描述的db表中有insert,delete,query操作之后,notifyChange()会通知该cursor注册的ContentObserver,并调用ContentObserver的onChange方法。CursorAdapter的onChange一般会调onContentChanged,在onContentChanged中调用Cursor.requery()来更新cursor中的数据。

用途:database table中有变动后通知用户刷新cursor中的数据。

 

2. DatasetObserver

    DatasetObserver主要是当注册它的cursor中发生变动时会调用其中的方法,让用户做一些界面刷新等操作。

    首先cursor通过registerDataSetObserver()注册DatasetObserver   当cursor数据有变动时,例如调用了cursor的requery(),会调用cursor的onChanged通知用户cursor中的内容有变 动,用户可以在onChanged里做一些刷新界面的操作。一般会在onChanged里调用notifyDataSetChanged通知 framework,framework收到通知会调用CursorAdapter的getView来做界面刷新等工作。

用途:cursor中的数据有变动时通知用户刷新界面。

ContentObserver与DatasetObserver区别,布布扣,bubuko.com

ContentObserver与DatasetObserver区别

标签:style   color   使用   io   数据   ar   art   div   

原文地址:http://www.cnblogs.com/xgjblog/p/3919654.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!