zoukankan      html  css  js  c++  java
  • Android简易实战教程--第二十一话《内容观察者监听数据库变化》

    当数据库的数据发生改变,我们又想知道具体改变的情况时,就需要对数据库的变化情况做一个监控。这个任务,就由内容观察者来完成。下面这个案例,为短信数据库注册内容观察者,来监控短信的变化情况,当短信数据库发生改变的时候,去做相应的业务处理即可(这里只是打印log)

    布局文件选择默认,因为用不到任何界面。

    看一下主活动中的代码:

    package com.itydl.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 cr = getContentResolver();
            //uri:监听哪个uri上的内容提供者的通知,数据库的uri
            //notifyForDescendents:如果是true,那么只要以content://sms开头的uri的数据改变,都能收到通知,比如content://sms/inbox。其实写死true即可
            //第三个参数:表示内容观察者的实例(这里继承ContentObserver实现类)
            cr.registerContentObserver(Uri.parse("content://sms"), true, new MyObserver(new Handler()));
        }
        
        class MyObserver extends ContentObserver{
    
    		
        	
    		public MyObserver(Handler handler) {
    			super(handler);
    			// 空构造。不许需要做任何的处理
    		}
    
    		//收到数据改变的通知,此方法调用
    		@Override
    		public void onChange(boolean selfChange) {
    			// TODO Auto-generated method stub
    			super.onChange(selfChange);
    			System.out.println("短信数据库改变");
    		}
    		
        }
    
    
        
        
    }
    

    现在可以运行程序了,然后往模拟器或者手机上,发送一条短信,改变短信数据库。发现,每发送一条短信,或者接受一条短信,log就会输出。



  • 相关阅读:
    Nginx如何配置基础缓存
    Websocket消息过长自动断开连接?
    Docker错误删除Postgresql容器如何恢复?
    Docker安装带中文全文搜索插件zhparser的Postgresql数据库
    Postgresql数据库安装中文全文搜索插件zhparser的问题
    Presto通过RESTful接口新增Connector
    在windows的IDEA运行Presto
    Druid.io通过NiFi摄取流数据
    Druid.io SQL乱码问题
    Druid.io启用SQL支持
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299609.html
Copyright © 2011-2022 走看看