使用Calendar Provider API引发了一些关于_ID
Android提供的唯一列的问题.
此列似乎是查询日历的主要和首选方式,但也指定应在哪个日历上创建事件.
我们似乎发现,如果远程删除日历并且删除是同步的,那么这些_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
of 存储了对"第三个日历"的引用3
.
如果我们要在该日历上进行创建和事件,我们将在错误的日历上进行,而不是真正了解它.
这种行为是记录在案还是众所周知的,如果是真的,我们怎么能安全地在我们的应用程序中存储对日历的引用,而以后它可能不是一个完全不同的日历?
Android文档,供参考:http: //developer.android.com/intl/es/guide/topics/providers/calendar-provider.html#calendar