确定ContentObserver

时间:2010-12-13 02:44:47

标签: android contentobserver

我有一个正在观看呼叫记录的内容观察者:

public class monitorCallLog extends ContentObserver{
    private static final String TAG = "monitorCallLog";
    public monitorCallLog(Handler handler) {
        super(handler);
        // TODO Auto-generated constructor stub
    }
    @Override
    public boolean deliverSelfNotifications() { 
        return false; 
    }
    @Override
    public void onChange(boolean selfChange){
        Log.v(TAG, "[onChange] *** ENTER ***");
        super.onChange(selfChange);
        // Code goes in here to handle the job of tracking....
        Log.v(TAG, "[onChange] *** LEAVE ***");
    }
}

现在......如何确定此URI content://call_log/calls上的更改的性质?

我想检查一下,如果在所述URI上发生了删除...但是没有办法知道......这似乎适用于所述URI上的查询/删除/插入/更新,触发了onChange方法......

任何提示/建议?

1 个答案:

答案 0 :(得分:0)

您是否尝试为每个呼叫Uris注册一个观察者?

即。如果你在调用日志中有5个调用,则为每个调用Uri注册一个内容观察者,可能会使观察者初始化并且观察到调用的id。

这样,当删除/更新单个呼叫时,内容提供商的删除方法将发送与单个呼叫匹配的通知,而不是所有呼叫。

我认为这是游标列表的非标准方法。我相信内容观察的大部分用途都是requery()光标。