我正在使用我的查询参数ContentProvider,允许我在请求来自同步适配器时通知它,以便它可以执行诸如确保不触发同步到网络之类的事情。我正在使用 aCursorLoader将LoaderManagera 附加Cursor到 aCursorAdapter中ListView- 基础知识。正在提供的数据库通过 Sync Adapter 进行更新,因此通知将使用 Sync Adapter 使用的 URI(带有附加查询参数的那个)。当我在重置加载程序之前让同步适配器完成时,我会在 中获得适当的数据ListView,但是如果我在某些数据仍在同步时尝试重置加载程序,我会得到当时数据库中的内容并且没有通知数据下载完成后重置。
我还没有找到任何关于查询参数是否会影响谁收到通知的答案ContentResolver.notifyChange(Uri, ContentObserver, boolean)。所以我正在尝试解决这个问题,但如果有人能在我弄清楚之前回答这个问题,那将不胜感激。需要明确的ContentProvider是,cursor.setNotificationUri(getContext().getContentResolver(), uri)当请求者不是ContentProvider.query(...). getContext().getContentResolver().notifyChange(uri, null, false)当请求者是ContentProvider.insert/update/delete/bulkInsert(...)使用触发请求的 URI的同步适配器时,它会调用。