【发布时间】:2012-11-12 13:48:49
【问题描述】:
我想在内部 Android 日历和我的应用程序之间进行同步。 我正在使用从 Android API 14 开始提供的 CalendarContract。
内容提供程序“com.android.calendar”的任何更改都会调用我的同步适配器的 onPerformSync(..)。 但是,此时,事件的所有行都设置为 DIRTY = 0。 这意味着,Google 日历同步必须将 DIRTY FLAG 设置为零,然后我的同步适配器才能访问它们。
CalendarContract.EventsColumns.SYNC_DATA1 - SYNCDATA10 被称为内容提供程序的列,用于同步适配器。 有谁知道这些列的用途是否有一些约定? 我已经意识到在我的设备上 SYNC_DATA5 存储了上次修改的日期,而 SYNC_DATA1 似乎存储了 Google 事件 ID。因此,每当日历应用与 Google 日历同步时,这些列似乎都会被修改。
但是,如果我选择将这些列之一用于我的同步适配器,我如何确保另一个应用程序不使用完全相同的列并且它们会相互覆盖?
如果 Google 日历始终使用 SYNC_DATA5 来存储上次修改的日期,我可以将其用于同步逻辑,我只需要确定这是一个约定。
【问题讨论】:
-
请问您提到的同步逻辑是什么?您如何将 SYNC_DATA5 用于同步逻辑?
标签: android calendar sync android-contentprovider