【发布时间】:2013-09-24 20:49:16
【问题描述】:
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 对此进行了测试。
【问题讨论】:
-
我只是偶然发现了同样的事情,可能是一个错误。我选择了你的方法 1。
标签: android android-contentprovider contentobserver