ContentObserver - 简直无法相信我所读过的内容

时间:2012-03-23 12:17:54

标签: android uri android-contentprovider contentobserver

我已阅读并阅读了相关的Q& A,并且无法相信如果我的自定义ContentProvider执行以下操作:

insertUri = ContentUris.withAppendedId( Data2TableMetaData.CONTENT_URI, rowId)
// notify listeners
getContext().getContentResolver().notifyChange(insertUri, null);

... ContentObservers没有办法检索rowId。

这是真的吗?我想我必须遗漏一些东西,因为这似乎不太好。

2 个答案:

答案 0 :(得分:1)

你是对的。回调接口不包含有关已更改内容的信息,仅包含已发生更改的信息。但是通常鼓励开发人员使用像CursorLoaders这样的东西来为你做所有繁重的工作。 http://developer.android.com/reference/android/content/CursorLoader.html

但是,现在使用新的Android 16 api,可以在OnChange方法中检索行的URI。

答案 1 :(得分:0)

在api级别16中,ContentObserver确实收到了具有rowId的uri。但是,在此之前,对于插入行但只想侦听该rowId的情况,一旦知道了rowId,就可以在插入后立即调用ContentResolver.registerContentObserver。