自定义注册内容观察者
来源:互联网 发布:汉仪菱心体简 for mac 编辑:程序博客网 时间:2024/06/04 09:00
当我们的某个数据库或者数组列表等发生添加,删除等改变时,我们希望能在代码中立马知道,那么这时候可以使用内容观察者。
先在想观察的方法里注册观察者
public void add(String packageName) { SQLiteDatabase db = openHelper.getWritableDatabase(); ContentValues values = new ContentValues(); values.put("packagename", packageName); db.insert("info", null, values); db.close(); //自定义注册一个内容观察者,uri的字符串随便写什么,但是要有content://头。 context.getContentResolver().notifyChange(Uri.parse("content://com.example.wanghao.didisafe/applock.db"),null);}public void delete(String packageName) { SQLiteDatabase db = openHelper.getWritableDatabase(); db.delete("info", "packagename = ?", new String[]{packageName}); db.close(); //自定义注册一个内容观察者 context.getContentResolver().notifyChange(Uri.parse("content://com.example.wanghao.didisafe/applock.db"), null);}
然后在正在运行的代码中拿到这个观察者的内容解析者
//在初始化代码里注册一个内容解析者Uri uri = Uri.parse("content://com.example.wanghao.didisafe/applock.db");//Uri是一样的observer = new MyObserver(new Handler());getContentResolver().registerContentObserver(uri, true, observer);在MyObserver里处理变化的数据
private class MyObserver extends ContentObserver{ public MyObserver(Handler handler) { super(handler); } @Override public void onChange(boolean selfChange) { super.onChange(selfChange); Log.i(TAG,"啊啊啊啊,我发现了数据库的内容变化了。"); protectedPacknames = dao.findAll(); }在destroy里反注册public void onDestroy() { // TODO Auto-generated method stub super.onDestroy(); getContentResolver().unregisterContentObserver(observer); observer = null;}
0 0
- 自定义注册内容观察者
- android注册内容观察者
- Android 注册内容观察者
- android注册内容观察者_smsListen
- 事件分发之扫描自定义注解实现观察者模式注册
- 内容观察者
- 内容观察者
- 内容观察者
- 内容观察者
- 内容观察者
- 内容观察者
- 内容观察者
- WordPress修改新用户注册邮件内容--自定义插件
- Android内容观察者--ContentObserver
- ContentObserver内容观察者
- ContentObserver 内容观察者
- 学习内容观察者
- Android的内容观察者
- 闭关日记 Day08
- How to describe yourself
- 并发之痛 Thread,Goroutine,Actor
- Nginx服务器的反向代理proxy_pass配置方法讲解
- 2016年第七届蓝桥杯C/C++程序设计本科B组省赛 煤球数目(结果填空)
- 自定义注册内容观察者
- Tell me about yourself
- linux2.6内核的DAC数据结构(传统9Bit模式、ACL模式)
- fedora C ncurses 贪吃蛇
- 使用C++日志库log4cplus
- java将字符串转换成可执行代码
- cropper插件实现头像截取
- Spring缓存注解@Cacheable、@CacheEvict、@CachePut使用
- 利用CentOS自带SSH服务搭建SFTP服务器