zoukankan      html  css  js  c++  java
  • Android内容观察者

    内容观察者是做什么的?

    内容观察者主要用来观察数据库是否被操作了。

    以查询数据库为例:

    首先注册一个内容观察者(App1):

     1 //false 观察的Uri必须是一个确切的Uri  如果是true,只需要匹配一个主机名,后面所有的操作都生效
     2         getContentResolver().registerContentObserver(uri,true,new MyContentObserver(new Handler()));
     3 
     4 
     5 private class MyContentObserver extends ContentObserver{
     6 
     7         /**
     8          * Creates a content observer.
     9          *
    10          * @param handler The handler to run {@link #onChange} on, or null if none.
    11          */
    12         public MyContentObserver(Handler handler) {
    13             super(handler);
    14         }
    15 
    16         //当观察的Uri发生改变的时候执行
    17         @Override
    18         public void onChange(boolean selfChange) {
    19             System.out.println("数据库被操作了!!!!!");
    20             super.onChange(selfChange);
    21         }
    22     }

    onChange()方法:当观察的Uri的数据库被操作的时候,会执行onChange()方法。

    App2操作数据库:

     1     private void doQuery(){
     2         Uri uri = Uri.parse("content://com.coderwei.provider/query");
     3         Cursor cursor = getContentResolver().query(uri,new String[]{"name","money"},null,null,null);
     4 
     5 
     6         if (cursor!=null){
     7             //如果操作了数据库,就发出一个通知
     8             this.getContentResolver().notifyChange(uri,null);
     9             while (cursor.moveToNext()){
    10                 String name = cursor.getString(0);
    11                 String money = cursor.getString(1);
    12                 System.out.println("name:"+name+"  money: "+money);
    13             }
    14         }
    15     }
    GitHub:https://github.com/godfunc
    博客园:http://www.cnblogs.com/godfunc
    Copyright ©2019 Godfunc
  • 相关阅读:
    数值拓展与函数拓展
    正则小记
    Struts2(三)配置详解
    Struts2(二)工作原理
    Struts2(一)基本配置
    Eclipse新建动态web工程项目出现红叉解决方案
    Spring系列之AOP
    Java动态代理的实现机制
    Spring系列之装配Bean
    Spring系列之基本配置
  • 原文地址:https://www.cnblogs.com/Godfunc/p/6065547.html
Copyright © 2011-2022 走看看