日期:2014-05-16  浏览次数:20491 次

数据库中实现监听
1. 先看使用的代码:
下面是我们在做未接来电时的代码:
mResolver.registerContentObserver(CallLog.Calls.CONTENT_URI, true,
                missedCallObserver)
这个CallLog.Calls.CONTENT_URI是在数据库中提供支持的。
而missedCallObserver继承了ContentObserver在CallLog.Calls.CONTENT_URI监听的内容发生变化是就会调用missedCallObserver的onChange方法。

2. 如何实现的对URI的支持。
看源码CallLogProvider.java
有如下方法:
protected void notifyChange() {
        getContext().getContentResolver().notifyChange(CallLog.CONTENT_URI, null,
                false /* wake up sync adapters */);
    }
这里告知CallLog.CONTENT_URI,有数据变化。
再一个notifyChange在哪些地方被调用呢。

不用看想也应该想在是在对数据库进行增,删,改的时候。
事实也是如此.

3. 谢谢,希望这对你有所帮助。