我的问题是我没有按照SyncAdapter处理本地编辑的方式。
onPerformSync()
中有一些逻辑,它从服务器中提取日历和事件并将其保存到Android日历提供程序。resolver.insert()
)时,我会将CALLER_IS_SYNCADAPTER
标记附加到日历URI,以便将服务器信息存储在相关的CalendarContract.Calendars
字段中。CALLER_IS_SYNCADAPTER
标志。我想要实现的是预定(在后台运行)或手动(用户点击Android日历应用中的点击)调用onPerformSync()
,我希望能够获得在设备上进行本地编辑或删除的任何事件。然后,我可以将更改推送到服务器,同时还可以降低服务器端的更改。
但事件和日历究竟是如何标记为DELETED
或DIRTY
的?每当我删除SyncAdapter日历上的事件时,它只会将其从数据库中删除而不会调用onPerformSync()
。
我看过: How to use CALLER_IS_SYNCADAPTER properly 但我还是不完全明白。