0

我有这个正在观看通话记录的内容观察者:

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 上发生了删除...但是无法知道...这似乎适用于触发该onChange方法的所述 URI 上的查询/删除/插入/更新.. ..

任何提示/建议?

4

1 回答 1

0

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

即,如果您在通话记录中有 5 次通话,请为每个通话 Uri 注册一个内容观察者,可能使用正在观察的通话的 id 初始化观察者。

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

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

于 2010-12-28T02:01:31.533 回答