zoukankan      html  css  js  c++  java
  • 内容观察者使用(程序锁应用中的使用)

    1.在Dao层的增删改查方法中,添加一句代码,通知内容观察者,数据库发生改变。

    context.getContentResolver().notifyChange(Uri.parse("content://applock/change"), null);

    参数1:自定义Uri,在注册内容观察者时匹配

    2.在需要使用内容观察者的类中(即DogService),注册内容观察者。一旦数据库的数据发生改变,就要调用内容观察者中的onchange方法,在这里就是再一次findAll().

    //使用内容观察者,观察数据库数据的改变

    MyContentObserver myContentObserver = new MyContentObserver(new Handler());

    getContentResolver().registerContentObserver(Uri.parse("content://applock/change"),true, myContentObserver);

    class MyContentObserver extends ContentObserver{

                       public MyContentObserver(Handler handler) {

                                super(handler);}

                       //当数据库数据发生改变时调用该方法

                       @Override

                       public void onChange(boolean selfChange) {

                                //当数据库数据发生改变时再查一次数据库

                                new Thread(){

                                         public void run() {

                                                   //耗时操作,在子线程中进行

                                                   lockAppList = appLockDao.findAll();

                                         };

                                }.start();}} 

  • 相关阅读:
    (数据结构)十分钟搞定时间复杂度(算法的时间复杂度)
    深入学习二叉树
    我对工作的认识
    mysql系列纠错;
    关于普通指针转换为智能指针的一些问题
    vscode The VS Code Server failed to start
    git 分支管理
    git change_id的理解
    git 指令速查
    c++ make_shared()函数理解 (待整理)
  • 原文地址:https://www.cnblogs.com/kim-liu/p/7337025.html
Copyright © 2011-2022 走看看