SyncAdapter,处理本地编辑和标志(DELETED,DIRTY和CALLER_IS_SYNCADAPTER)

时间:2013-04-27 01:12:49

标签: android android-calendar android-syncadapter

  • App同步到CalDAV服务器
  • 使用默认的Android日历应用以及SyncAdapter

我的问题是我没有按照SyncAdapter处理本地编辑的方式。

  • 我在SyncAdapter的onPerformSync()中有一些逻辑,它从服务器中提取日历和事件并将其保存到Android日历提供程序。
  • 当我保存日历(resolver.insert())时,我会将CALLER_IS_SYNCADAPTER标记附加到日历URI,以便将服务器信息存储在相关的CalendarContract.Calendars字段中。
  • 当我保存事件时,我不附加CALLER_IS_SYNCADAPTER标志。

我想要实现的是预定(在后台运行)或手动(用户点击Android日历应用中的点击)调用onPerformSync() ,我希望能够获得在设备上进行本地编辑或删除的任何事件。然后,我可以将更改推送到服务器,同时还可以降低服务器端的更改。

但事件和日历究竟是如何标记为DELETEDDIRTY的?每当我删除SyncAdapter日历上的事件时,它只会将其从数据库中删除而不会调用onPerformSync()

我看过: How to use CALLER_IS_SYNCADAPTER properly 但我还是不完全明白。

0 个答案:

没有答案