zoukankan      html  css  js  c++  java
  • Android -- 内容观察者

    一张图了解内容观察者:

    image

    背景                                                                                         

    通过发送一条短信,然后手机接收到,那么数据库必然改变,内容观察者这时候就起作用了。

    程序                                                                                         

    public class MainActivity extends Activity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            ContentResolver resolver = getContentResolver();
            Uri uri = Uri.parse("content://sms/");
            //注册
            resolver.registerContentObserver(uri, true, new MyObserver(new Handler()));                   
        }
        
        class MyObserver extends ContentObserver
        {
    
            public MyObserver(Handler handler) {
                super(handler);            
            }
    
            //当内容观察者观察到数据库的内容发生了变化就会调用这个方法
            //观察到消息邮箱里有一条数据库内容变化的通知
            @Override
            public void onChange(boolean selfChange) {
                super.onChange(selfChange);
                Toast.makeText(MainActivity.this, "数据库的内容发生了变化", Toast.LENGTH_LONG).show();
                Uri uri = Uri.parse("content://sms/");
                ContentResolver resolver = getContentResolver();
                Cursor cursor = resolver.query(uri, new String[]{"address" ,"date", "type", "body"}, null, null, null);
                cursor.moveToFirst();
                String address = cursor.getString(cursor.getColumnIndex("address"));
                String body = cursor.getString(cursor.getColumnIndex("body"));
                System.out.println("address"+address+"+++++++body:"+body);
                cursor.close();
            }                  
        }    
    }

    效果                                                                                          

    image

    注意一下短信的读取的权限哈!!

    我是天王盖地虎的分割线                                                                

    源代码:http://pan.baidu.com/s/1dD1Qx01

    内容观察者.zip

    转载请注明出处:http://www.cnblogs.com/yydcdut

  • 相关阅读:
    day14 多态与抽象
    day13 类的补充
    day12 继承
    第三周总结 类、对象、包
    day11 细节记忆
    Dapper使用
    修改SQL Server 中数据库的Collation
    Web API 输出文件缓存
    Sql从邮件中提取国家代码
    解决Nuget:https://api.nuget.org/v3/index.json 访问不了的问题
  • 原文地址:https://www.cnblogs.com/yydcdut/p/3791258.html
Copyright © 2011-2022 走看看