这里是 registerContentObserver 的描述:
abstract void registerContentObserver(ContentObserver 观察者)
注册一个观察者,当支持此游标的内容发生更改时调用该观察者。
这是我的代码:
Cursor cursor = (SQLiteCursor)dataBase.query(projection, null, null, null);
cursor .registerContentObserver(new ChangeObserver());
private class ChangeObserver extends ContentObserver {
public ChangeObserver() {
super(new Handler());
}
@Override
public boolean deliverSelfNotifications() {
return true;
}
@Override
public void onChange(boolean selfChange) {
Log.d(Constants.TAG, "ChangeObserver.onChange");
}
}
但是,当我更改数据库(删除/更新/添加行)时,永远不会调用 ContentObserver 的 onChange 方法。所以我想知道什么情况会触发 ContentObserver ?