我正在编写一个应用程序,需要知道在日历中添加/删除/更改会议的时间。
我知道如何使用日历uri上的CursorLoader
从日历中获取所有数据。
我也知道如何使用ContentObserver
收听日历更改。
问题是ContentObserver.onChange(boolean selfChange, Uri uri)
不提供有关已更改事件的信息。因此,让我知道更改的唯一方法是使用CursorLoader
再次加载整个日历(或部分日历)并将旧版本与新版本进行比较。
有没有办法在日历上“注册更改”并接收已更改的事件?
答案 0 :(得分:3)
不幸的是,没有这样的选择。我甚至远远地反映了那个Intent附带的整个Bundle - 没什么。恕我直言,Android API的一些表面非常缺乏,我想这只是其中一个实例。
答案 1 :(得分:0)
手动编辑事件后的每个事件都设置CalendarContract.DIRTY = 1(用于指示存在本地,未同步的更改)。找到这些事件。不要忘记在同步后重置此标志(等于0)。