您的位置:首页 > 其它

内容改变观察者registercontentobserver

2016-11-20 14:32 218 查看
1、实际操作类ContentResolver

ContentResolver contentResolver=getContentResolver();


2、注册观察者

contentResolver.registerContentObserver(Uri uri, boolean notifyForDescendents, ContentObserver observer)

uri :需要观察的Uri

notifyForDescendents:

false :表示精确匹配,即只匹配该Uri

true :表示可以同时匹配其派生的Uri

假设UriMatcher 里注册的Uri共有一下类型:

1 、content://AUTHORITIES/table

2 、content://AUTHORITIES/table/#

3、content://AUTHORITIES/table/subtable

假设我们当前需要观察的Uri为content://AUTHORITIES/student:

如果发生数据变化的 Uri 为 3。

当notifyForDescendents为false,那么该ContentObserver会监听不到,但是当notifyForDescendents 为ture,能捕捉该Uri的数据库变化。

ContentObserver派生类 :创建一个类继承ContentObserver

//创建这个类的实例,添加到观察者
//MyContentObserver observer=new MyContentObserver(new Handler());
public  class MyContentObserver extends ContentObserver{
public MyContentObserver(Handler handler) {
super(handler);
}
//当数据改变时
//可通过notifyChange(Uri uri, ContentObserver observer)方法通知
@Override
public void onChange(boolean selfChange, Uri uri) {
super.onChange(selfChange, uri);
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: