• android 简单的内容观察者代码


    以数据库发生变化创建一个内容发布者来发布消息,然后在对应的服务中注册一个内容接收者专门用来接收来自这个发布者发布的消息,数据库发生变化观察者观察到这个变化就会做出相应的动作在自定义的内容观察者类中

    1. 内容发布者,在数据库的dao操作方法中,执行增加和删除数据的时候就发布消息

    发布的消息包含一个特定的字符串,表示这个消息是能够被那个同样规定这个字符串的观察者所观察到

            // 内容发布者,数据库发生了改变,通过uri的方向发布了一个改变信息
            ContentResolver resolver = context.getContentResolver();  
            Uri uri = Uri.parse(Constant.RESOLVER_NOTIFY);  // 这个RESOLVER_NOTIFY字符串就是一个特定的字符串,用来表示在观察者中要观察到的发布者发布的消息
            resolver.notifyChange(uri, null);  // 发出消息

    2. 内容观察者

    包含一个自定义的观察者类,继承自ContentObserver,并通过在onChange方法中来执行接收到消息时要做的动作。在服务的初始化中去注册一个这样的观察者,这样的话就能够观察到数据库的变化了

        // 创建一个内容观察者
        class AppLockObserver extends ContentObserver{
            public AppLockObserver(Handler handler) {
                super(handler);
            }
            @Override
            public void onChange(boolean selfChange) {
                // 收到数据库变化的通知,然后重新加载那个锁定数据库
                Log.e("John", "AppLockObserver" + " # " + "数据库发生了变化");
                loadLockApp();
                super.onChange(selfChange);
            }
        }
            // 注册一个内容观察者在服务运行的时候
            Uri uri = Uri.parse(Constant.RESOLVER_NOTIFY);  // 这个uri对应了数据库中发布者发布时的那个uri
            getContentResolver().registerContentObserver(uri, true, new AppLockObserver(new Handler())); // 注册观察者,这个Handler还不知道怎么用,可能这个handler会在上面按个观察者的构造器中被调用 
  • 相关阅读:
    在线银联之实例操作
    html5介绍 之亮点特性
    html5介绍
    MVC 分页获取数据 及点选按钮
    用正则表达式抓取网页中的ul 和 li标签中最终的值!
    android 目录结构
    DataBinding 访问 3
    DataBinding初探 数据绑定的用法 ,import 集合类型,绑定的表达式,访问集合类型2
    MVVM技术
    全栈工程师,也叫全端工程师,英文FullStackdevelopver。是指掌握多种技能,并能利用多种技能独立完成产品的人。
  • 原文地址:https://www.cnblogs.com/xxss0903/p/5898140.html
Copyright © 2020-2023  润新知