使用日历提供程序API引发了一些关于Android提供的唯一_ID
列的问题。
此列似乎是查询日历的主要和首选方式,但也指定应在哪个日历上创建事件。
我们似乎发现,如果远程删除日历并且删除是同步的,则这些_ID
值实际上已被回收(无AUTOINCREMENT
)。未来的日历可能会被赋予旧日历_ID
。
例如,如果我们有:
_ID, DISPLAY_NAME
1, "First Calendar"
2, "Second Calendar"
3, "Third Calendar"
然后我们删除"第三个日历"在calendar.google.com
。我们在Android上重新同步。然后我们添加"第四个日历"在calendar.google.com
。我们在Android上重新同步。
现在我们有:
_ID, DISPLAY_NAME
1, "First Calendar"
2, "Second Calendar"
3, "Fourth Calendar"
让我们在我们SharedPreference
中说出我们已经存储了对第三个日历的引用"通过_ID
的{{1}}。
如果我们要在该日历上进行创建和活动,我们就会在错误的日历上进行操作而不知道它。
这种行为是记录在案还是众所周知的,如果是真的,我们怎样才能安全地在我们的应用程序中存储对日历的引用,而以后它可能不是一个完全不同的日历?
Android文档,供参考: http://developer.android.com/intl/es/guide/topics/providers/calendar-provider.html#calendar