1

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

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

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

这真的正确吗?我想我一定错过了一些东西,因为这看起来不太好。

4

2 回答 2

1

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

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

于 2012-03-23T12:43:19.017 回答
0

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

于 2013-04-06T14:56:14.707 回答