gpt4 book ai didi

android - 更新 Android CalendarProvider 中的 ExDate 列后未重新生成实例表

转载 作者:行者123 更新时间:2023-11-30 01:29:07 25 4
gpt4 key购买 nike

我正在使用本地日历。这是我创建事件的代码:

ContentValues values = new ContentValues();
values.put(CalendarContract.Events.DTSTART, 1457926200000L);
values.put(CalendarContract.Events.DURATION, "P3600S");
values.put(CalendarContract.Events.RRULE, "FREQ=DAILY;COUNT=2;WKST=SU");
values.put(CalendarContract.Events.EVENT_TIMEZONE, TimeZone.getDefault().getID());
values.put(CalendarContract.Events.CALENDAR_ID, 34);
values.put(CalendarContract.Events.EXDATE, "20160314T033000Z");
values.put(CalendarContract.Events.TITLE, "R0");

Uri uri = getContentResolver().insert(CalendarContract.Events.CONTENT_URI, values);

事件已正确插入,而 RRULE 中的 COUNT 为 2,由于 ExDate,我只看到一个事件。但是如果我删除这一行:

values.put(CalendarContract.Events.EXDATE, "20160314T033000Z");

并更新插入的事件:

ContentValues values = new ContentValues();
values.put(CalendarContract.Events.EXDATE, "20160314T033000Z");
int update = getContentResolver().update(ContentUris.withAppendedId(CalendarContract.Events.CONTENT_URI, 3612), values, null, null);

事件已成功更新(我查询并正确更新了 ExDate)。但是,我看到了 2 个事件而不是一个,而且 ExDate 似乎不起作用。

我知道可以使用 original_idoriginal_instance_time 以及 CONTENT_EXCEPTION_URI 插入异常。我想知道除了插入另一个事件之外,还有其他方法可以做到这一点吗?

谢谢

最佳答案

尝试在更新事件时将 CalendarContract.Events.DTSTART 添加到 ContentValues(确保传递原始值)。

正如您在 CalendarInstancesHelper.java 中看到的那样,如果修改后的 ContentValues 中不存在 DTSTART,则跳过实例表更新。

关于android - 更新 Android CalendarProvider 中的 ExDate 列后未重新生成实例表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36007135/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com