gpt4 book ai didi

android - 什么情况下uri传递给Android的ContentObserver.onChange()回调?

转载 作者:搜寻专家 更新时间:2023-11-01 08:02:34 28 4
gpt4 key购买 nike

Android 的 ContentObserver 类的 onChange() 方法表示,“在可用时包含已更改的内容 Uri。” URI 在什么情况下可用?什么情况下不可用?

uri 参数是在 API 级别 16 (Android 4.1) 中添加的,因此我希望它在 Android 4.1 和更新版本中设置。但是,我在 Android 4.3 上看到一个未设置 uri 的情况。

方法 1:有效

MyContentObserver.onChange() 被调用并传递一个有效的 uri:

contentResolver.registerContentObserver(myUri, true, new MyContentObserver());

方法 2:不起作用——为什么不呢?

调用了 MyContentObserver.onChange() 但 uri 参数为空:

contentResolver.query();
cursor.registerContentObserver(new MyContentObserver);

这是预期的吗?其中一个比另一个更受欢迎吗?我已经使用“content://com.google.android.gm/me@example.com/labels”并使用我自己的自定义 ContentProvider 对此进行了测试。

最佳答案

这是一个老问题,但仍然没有答案。所以我会添加我的答案,以防人们仍然对此感到好奇。

当您的内容提供者使用 getContext().getContentResolver().notifyChange(URI, "your_uri"); 通知已注册的观察者时,它会向 ContentResponder 请求.该方法的返回值是您使用内容响应器的 registerContentObserver() 方法注册的 ContentObserver,这是您在第一种情况下所做的。但是,在第二种情况下,您使用 CursorregisterContentObserver() 方法在 Cursor 中注册了观察者,因此 ContentResponder 对此一无所知。

关于android - 什么情况下uri传递给Android的ContentObserver.onChange()回调?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18991761/

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