首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > 其他数据库 >

对系统数据库表变更的监听

2012-06-29 
对系统数据库表变化的监听1.注册监听this.getContentResolver().registerContentObserver(CallLog.CONTENT

对系统数据库表变化的监听

1.注册监听

this.getContentResolver().registerContentObserver(CallLog.CONTENT_URI,true, myContentObserver);

?

2.

/** * 用来实现对通话记录表变化的监听 监听到变化的时候发送Message *  * */private ContentObserver myContentObserver = new ContentObserver(new Handler() {}) {@Overridepublic void onChange(boolean selfChange) {super.onChange(selfChange);System.out.println("---------------监听到表变化!");Message ms = new Message();handler.dispatchMessage(ms);//发送消息给Handler}};

?

?3.

private final Handler handler = new Handler() {@Overridepublic void handleMessage(Message msg) {//处理消息// if (willDo != null)// {// System.out.println("removeCallbacks一次!");// this.removeCallbacks(willDo);//从队列中移除//// }// this.postDelayed(willDo, 2000);//怎么理解???????2秒内如果接受到新的消息System.out.println("外面一次!");if (willDo != null && flag == true) {this.post(willDo);System.out.println("里面一次!");flag = false;Timer timer = new Timer();// 设置一个定时器,如果3秒后再将flag设置为true,才能继续监听改变timer.schedule(new TimerTask() {@Overridepublic void run() {flag = true;}}, 3000);}}};
?

4.

private Runnable willDo = new Runnable() {public void run() {initCallLogs();//对表变化所执行的一些操作System.out.println("WillDo执行一次!");}};
?

?

热点排行