SyncAdapterを使用してWebサービスに同期される独自のContentProviderを作成しています。
同期アダプターがコンテンツプロバイダーのデータを変更しているときに問題が発生します。プロバイダーが内部でgetContentResolver()。notifyChangeを呼び出すと、ネットワーク同期がトリガーされ、同期ループが発生します。
ネットワーク同期フラグを指定したnotifyChangeは、クライアントアプリケーションが変更を行う場合に必要ですが、同期アダプターが変更を行う場合は避ける必要があります。
コンテンツプロバイダー内で、クライアントアプリケーション(変更時にネットワーク同期をトリガーする必要がある)または同期アダプター(ネットワーク同期をトリガーしない)によって使用されているかどうかを簡単に判断するにはどうすればよいですか。
現在、異なるCONTENT_URI(同期アダプターはCONTENT_URI_NO_SYNCを使用してデータにアクセスし、クライアントアプリはCONTENT_URIを使用して)を使用して、2つのタイプのアクセスを区別し、それに応じてネットワーク同期フラグを設定しています。