• 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
  • 相关阅读:
    解决jar包冲突
    postman使用记录
    get请求直接通过浏览器发请求传数组或者list到后台
    excel中ppmt/pmt/ipmt的计算方式
    unicode编码与解码
    spring参数拼装
    java内存模型(jmm)
    Mysql事务,并发问题,锁机制-- 幻读、不可重复读(转)
    星空雅梦
    星空雅梦
  • 原文地址:https://www.cnblogs.com/Godfunc/p/6065547.html
Copyright © 2020-2023  润新知