SQLiteアプリケーションのデータベース、ユーザーのデータベース、Calendarおよび Web サーバー間のデータの同期に関して、かなり複雑な質問があります。
これは本質的に私が必要とする動作です:
onResume():変更されたEvents on any Calendaron anyAccountにより、アプリケーションのSQLiteデータベースが更新されます。(Accountもちろん、ユーザーが指定するだけです)。
私が今書いていることは、SQLiteデータベース内のすべてのエントリをCalendarイベントごとに更新することonResume()です。もちろん、これは理想的ではありません。
すべてのイベントをアプリケーションのデータベースに取り込み、SQLiteデータベースと Web サーバー間で同期することができます。主な問題は、SQLiteデータベースとCalendar. 私の調査によると、DIRTY独自のフラグを実装する場合にのみ、カレンダーのフラグに書き込むことができると読みましたSyncAdapter。ContentProviderこれには、回避したいを実装する必要もあります。だから私の質問は:
CalendarSyncAdapter を実装せずに変更されたイベントを表示するための信頼できる方法はありますか?DIRTYそうでない場合、アプリケーション用に独自のフラグを維持できることが保証されていますか?DIRTYGoogle がフラグを使用してCalendarを Google カレンダーと同期していることは知っています。Google カレンダーがこのフラグを継続的に設定およびリセットすると、アプリケーションの維持に役立ちません。- この種の問題に対して、私が気づかないような推奨される設計アプローチはありますか? それぞれの「last_modified」タイプフラグを保持する別の方法など
Calendar Event?
乾杯。
編集:また、現在アプリケーションで Android 4.0+ をターゲットにしていることも追加する必要がありますが、将来的にはすべてのバージョンをサポートしたいと考えています。