监听ContentProvider中数据的变化
2015-07-27 20:17
871 查看
如果ContentProvider的访问者需要知道ContentProvider中的数据发生变化,可以在ContentProvider 发生数据变化时调用getContentResolver().notifyChange(uri, null)来通知注册在此URI上的访问者,例子如下:
public class PersonContentProvider extends ContentProvider {
public Uri insert(Uri uri, ContentValues values) {
db.insert("person", "personid", values);
getContext().getContentResolver().notifyChange(uri, null);
}
}
如果ContentProvider的访问者需要得到数据变化通知,必须使用ContentObserver对数据(数据采用uri描述)进行监听,当监听到数据变化通知时,系统就会调用ContentObserver的onChange()方法:
//PersonObserver对前面的uri进行监听,当收到contentprovider的数据变化通知时,监听器调用onChage()方法。
getContentResolver().registerContentObserver(Uri.parse("content://com.wangjialin.providers.personprovider/person"),
true, new PersonObserver(new Handler()));
//true表示只要发出通知的Uri以方法第一个参数开头都能被监听到,否侧监听uri必须与发出通知的uri完全匹配才能被监听到
public class PersonObserver extends ContentObserver{
public PersonObserver(Handler handler) {
super(handler);
}
public void onChange(boolean selfChange) {
//此处可以进行相应的业务处理
}
}
public class PersonContentProvider extends ContentProvider {
public Uri insert(Uri uri, ContentValues values) {
db.insert("person", "personid", values);
getContext().getContentResolver().notifyChange(uri, null);
}
}
如果ContentProvider的访问者需要得到数据变化通知,必须使用ContentObserver对数据(数据采用uri描述)进行监听,当监听到数据变化通知时,系统就会调用ContentObserver的onChange()方法:
//PersonObserver对前面的uri进行监听,当收到contentprovider的数据变化通知时,监听器调用onChage()方法。
getContentResolver().registerContentObserver(Uri.parse("content://com.wangjialin.providers.personprovider/person"),
true, new PersonObserver(new Handler()));
//true表示只要发出通知的Uri以方法第一个参数开头都能被监听到,否侧监听uri必须与发出通知的uri完全匹配才能被监听到
public class PersonObserver extends ContentObserver{
public PersonObserver(Handler handler) {
super(handler);
}
public void onChange(boolean selfChange) {
//此处可以进行相应的业务处理
}
}
相关文章推荐
- URI+ContentProvider+ContenResolver
- PHP上传文件(学习)
- sycPHPCMS v1.6 cookie sqlinjection
- 360浏览器 极速模式下,有些幻灯图片不显示,但其它火狐和IE浏览器都显示
- php技术实现加载字体并保存成图片
- PHP中的SESSION机制
- 关于onethinkphp 分类数据
- PHP之cookie详解
- PHP 连接新浪云,mySQL数据库时,出错的问题解决
- phpMyadmin 修改上传文件大小限制
- 在Windows中配置PHP的OpenSSL模块
- thinkphp C方法问题
- Web开发、测试环境搭建(LAMP、SVN服务器、Laravel项目创建)
- 几个不常用但是很好用的PHP数组函数
- WDCP升级到PHP5.3版本
- 小胖学PHP总结5-----PHP操作SQL数据库(Deprecated: mysql_connect(): The mysql extension is deprecated and will)
- php 小代码(2)-----给定一个字符串时间得到其时间所在的当周的周一及周日时间
- 在PhpStorm中使用xdebug调试PHP代码
- PHP AJAX JSONP实现跨域请求使用实例
- PHP基础示例:用正则表达式修改配置信息