- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
这里是 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 ?
最佳答案
基本上,这是文档中的问题,如 this post 中所述-- 向@mikerowehl 的研究致敬!
它归结为主要用于描述与 ContentProviders/ContentResolvers 一起工作的 Cursors 行为的文档。如果不涉及这些类,并且未按照@Renard 的建议进行操作,则 ContentObserver 将不会获得回调。不管文档怎么说。
因此,原始的 SQLiteCursor 与那些花哨的游标有点“关系不佳”...:)
关于android.database.Cursor registerContentObserver,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10024746/
我正在使用几个 ListView ,每个 ListView 都使用一个子类 SimpleCursorAdapter 来处理来自数据库的结果。这是一个简单的日记查看器, Activity 1 = 天,
我正在使用 registerContentObserver() 在联系人更改时收到通知,但是当我注册内容时 uri:People.CONTENT_URI 并且当我在即使在更改联系人后,日志猫也会收到“
只是想确定是否有一种简单的方法来确定在使用 registerContentObserver 或其他方法时哪些联系人发生了变化?我可以知道数据库何时更改,但不确定每次更新/更改发生时我是否要检查所有记录
这里是 registerContentObserver 的描述: abstract void registerContentObserver(ContentObserver 观察者) 注册一个观察者,
我见过的所有使用 registerContentObserver() 的例子都是通过 ContentProvider 接口(interface)来实现的。但是 Cursor 有一个 registerC
我是一名优秀的程序员,十分优秀!