• 内容观察者


    #内容观察者(掌握)
    * 当数据库数据改变时,内容提供者会发出通知,在内容提供者的uri上注册一个内容观察者,就可以收到数据改变的通知
     
    cr.registerContentObserver(Uri.parse("content://sms"), true, new MyObserver(new Handler()));
     
    class MyObserver extends ContentObserver{
     
    public MyObserver(Handler handler) {
    super(handler);
    // TODO Auto-generated constructor stub
    }
     
    //内容观察者收到数据库发生改变的通知时,会调用此方法
    @Override
    public void onChange(boolean selfChange) {
     
    }
     
    }
     
    部分代码:
    package com.itheima.contentobserver;
     
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Handler;
    import android.app.Activity;
    import android.content.ContentResolver;
    import android.database.ContentObserver;
    import android.view.Menu;
     
    public class MainActivity extends Activity {
     
    @Override
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
     
    //注册内容观察者,观察者就生效了,可以接受内容提供者发出的通知
    ContentResolver resolver = getContentResolver();
    //arg0:指定接收哪个内容提供者发出的通知
    resolver.registerContentObserver(Uri.parse("content://sms"),
    true, //如果为true,以这个uri作为开头的uri上的数据改变了,该内容观察者都会收到通知
    new MyObserver(new Handler()));
    }
     
    class MyObserver extends ContentObserver{
     
    public MyObserver(Handler handler) {
    super(handler);
    // TODO Auto-generated constructor stub
    }
     
    @Override
    public void onChange(boolean selfChange) {
    // TODO Auto-generated method stub
    super.onChange(selfChange);
    System.out.println("短信数据库改变");
    }
    }
     
    }
  • 相关阅读:
    zabbix(三)网页操作
    zabbix(二)安装客户端
    zabbix(一)安装服务端
    python操作git
    elasticsearch之match
    elasticsearch之查询的两种方式
    Git 命令集合啦
    Django contenttype 组件
    Django 中 related_name/related_query_name 的区别
    Django中的CharField 和 FileField 主要讲FileField
  • 原文地址:https://www.cnblogs.com/SoulCode/p/6393331.html
Copyright © 2020-2023  润新知