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