Android、Listener/Observer/Callback 关于日历事件更改

Android, Listener/Observer/Callback on calendar event change

我正在编写一个应用程序,它需要知道日历中的会议时间 added/removed/changed。
我知道如何使用日历 uri 上的 CursorLoader 从日历中获取所有数据。
我还知道如何使用 ContentObserver 收听日历更改。

问题是 ContentObserver.onChange(boolean selfChange, Uri uri) 不提供有关已更改事件的信息。所以让我知道变化是什么的唯一方法是使用 CursorLoader 重新加载整个日历(或其中的一部分)并比较旧的和新的。

有没有办法在日历上 "register for changes" 并接收更改的事件?

很遗憾,没有这样的选项。我什至反映了那个 Intent 附带的整个 Bundle - 什么都没有。恕我直言,Android API 的某些表面非常缺乏,我猜这只是其中之一。

手动编辑事件集后的每个事件 CalendarContract.DIRTY = 1(用于指示存在本地、未同步的更改)。找到这些事件。不要忘记在同步后重置此标志(等于 0)。