要求が同期アダプターから送信されたときに通知できるようにするクエリパラメーターを使用して、ContentProvider
ネットワークへの同期をトリガーしないようにするなどのことを行うことができます。aを aにaに付けるために aCursorLoader
を使用しています - 基本。提供されているデータベースは同期アダプターを介して更新されるため、通知は同期アダプターが使用する URI (クエリパラメーターが添付されたもの) を使用します。ローダーをリセットする前に同期アダプターを終了させると、適切なデータがに取得されますが、一部のデータがまだ同期されている間にローダーをリセットしようとすると、その時点でデータベースにあったものが取得され、通知されません。データのダウンロードが完了するとリセットされます。LoaderManager
Cursor
CursorAdapter
ListView
ListView
クエリ パラメータが で通知される相手に影響するかどうかについての回答は見つかりませんでしたContentResolver.notifyChange(Uri, ContentObserver, boolean)
。だから私はこの問題に取り組もうとしていますが、私が理解する前に誰かがその質問に答えることができれば、それは大歓迎です. 明確にするために、リクエスターが の同期アダプターではなかったときに、 myContentProvider
を呼び出しています。そして、リクエストをトリガーした URI を使用して、リクエスタが Sync Adapter である場合に呼び出します。cursor.setNotificationUri(getContext().getContentResolver(), uri)
ContentProvider.query(...)
getContext().getContentResolver().notifyChange(uri, null, false)
ContentProvider.insert/update/delete/bulkInsert(...)