gpt4 book ai didi

android.database.Cursor registerContentObserver

转载 作者:太空狗 更新时间:2023-10-29 16:22:52 33 4
gpt4 key购买 nike

这里是 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/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com