CalendarContracts.Instances 查询返回,所有重复事件都扩展为单个实例“占位符”。如何判断哪些行代表占位符,哪些是唯一的单个事件?
问问题
560 次
2 回答
1
1.如何分辨哪些行代表占位符,哪些是唯一的、单一的事件?
要检测单个非重复事件,您可以更轻松地查询CalendarContacts.Events
和查找重复列为空的事件。
2.后两者只有出现在RRULE定义的规则中才能定义
False,RDATE 和 RRULE 完全相互独立。请参阅4.6.1 事件组件:
; the following are optional, ; and MAY occur more than once attach / attendee / categories / comment / contact / EXDATE/ EXRULE/ rstatus / related / resources / RDATE / RRULE / x-prop
3.有人愿意解释吗?
RRULE 指定一个循环模式。
而 RDATE 指定一组重复的日期时间。
有关正式定义和示例,请参见4.8.5 循环组件属性。
事实上,它们甚至可以共存:
说明:此属性 [RDATE] 可以与“RRULE”属性一起出现,以定义重复出现的聚合集。当它们都出现在 iCalendar 对象中时,重复事件由“RDATE”和“RRULE”定义的事件的联合定义。
所以该函数基本上说,“如果任何列不为空,则返回 true”。
于 2013-03-03T07:12:07.057 回答
0
我在 android Calendar 源代码中找到了这段代码。我不确定为什么它会检查所有三个属性,因为我相信后两个属性只有在它们出现在 RRULE 定义的规则中时才能定义。有人愿意解释吗?
public static boolean isRecurrenceEvent(ContentValues values) {
return (!TextUtils.isEmpty(values.getAsString(Events.RRULE))||
!TextUtils.isEmpty(values.getAsString(Events.RDATE))||
!TextUtils.isEmpty(values.getAsString(Events.ORIGINAL_EVENT)));
}
于 2012-11-25T16:23:16.703 回答