短信监听---数据库变动

当临时有短信接收是,即需短信监听,其监听方法有两种:一、通过广播发送及接收;二、监听数据库的数据变化

一、数据库变化

//接收Handler发送的msg,进行相应的操作

Handler mesgHandler=new  Handler(){  
        @Override 
        public void handleMessage(Message msg) {  
            // TODO Auto-generated method stub  
            super.handleMessage(msg);
            switch(msg.what){
            case 1:
             //相应需要的操作
            }
        }  
    };
 

//继承短信的监听服务,重写onChange()函数,一但数据库数据发送变化,该函数会被调用
 class MyContentObserver extends ContentObserver{
        public MyContentObserver(Handler handler) {  
            super(handler);   
        }  
        @Override 
        public void onChange(boolean selfChange) {   //数据库一产生变化,就会执行onChange函数
            super.onChange(selfChange);   

            //当数据库数据发生变化,即该函数被调用,通过Handler传值响应相应的操作
            Message msg=new Message();
            msg.what=1;
            mesgHandler.sendMessage(msg);//数据库一有监听就用hander刷新存储链表
            System.out.println("监听到了短信数据库的数据产生变化");
        }  
          
        @Override 
        public boolean deliverSelfNotifications() {  
            // TODO Auto-generated method stub  
            return super.deliverSelfNotifications();  
        }  
    }

 

 

//注册数据库监听

  MyContentObserver mco;//继承的短信监听server类
  Uri uri = Uri.parse("content://sms/");    //短信URI
  mco = new MyContentObserver(mesgHandler);
  getApplicationContext().getContentResolver().registerContentObserver(uri, true, mco);

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章