我有一个正在观看呼叫记录的内容观察者:
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
方法......
任何提示/建议?
答案 0 :(得分:0)
您是否尝试为每个呼叫Uris注册一个观察者?
即。如果你在调用日志中有5个调用,则为每个调用Uri注册一个内容观察者,可能会使观察者初始化并且观察到调用的id。
这样,当删除/更新单个呼叫时,内容提供商的删除方法将发送与单个呼叫匹配的通知,而不是所有呼叫。
我认为这是游标列表的非标准方法。我相信内容观察的大部分用途都是requery()
光标。