gpt4 book ai didi

Android CalendarContract,删除重复事件会导致所有事件在日历上消失吗?

转载 作者:行者123 更新时间:2023-11-29 01:53:55 26 4
gpt4 key购买 nike

我有一个同步适配器来处理同步日历和事件。我能够很好地删除正常事件。但是每当我删除一个重复发生的事件时,我日历上的所有事件都会消失。

我注意到的一件事是,每当我删除一个重复发生的事件时,Instances 表就会被清空,这解释了事件消失的原因。 Events 表符合预期,从表中删除了重复发生的事件行。

这是什么原因造成的?

我试过通过以下方式删除:

resolver.delete(
ContentUris.withAppendedId(Events.CONTENT_URI, id),
null,
null
);

resolver.delete(
Events.CONTENT_URI,
Events._ID + " = ?",
new String[]{id}
);

也作为SyncAdapter:

resolver.delete(
Events.CONTENT_URI.buildUpon()
.appendQueryParameter(CalendarContract.CALLER_IS_SYNCADAPTER, "true")
.appendQueryParameter(Calendars.ACCOUNT_NAME, account.name)
.appendQueryParameter(Calendars.ACCOUNT_TYPE, account.type)
.build(),
Events._ID + " = ?",
new String[]{id}
);

所有方法都可以在非重复事件上正常工作,但都会导致 Instances 表在删除重复事件时被清空。

更新

我注意到的一件事是 LogCat 吐出以下错误

  • 应用程序:system_process
  • 标签:缓冲队列
  • PID:1187
  • 工号:1518

[com.android.calendar/com.android.calendar.AllInOneActivity] BufferQueue:drainQueueLocked: 消费者等待超时!

最佳答案

事实证明这是我的错误。当我的 SyncAdapter 将日历添加到数据库时,我没有正确设置字段 SYNC_EVENTS ( http://developer.android.com/reference/android/provider/CalendarContract.CalendarColumns.html#SYNC_EVENTS )。具体来说,该字段应设置为 1

很难知道这是问题所在,因为我仍然能够在技术上“同步”(将事件推送到服务器并从服务器拉取事件),但我只是遇到了我的事件消失的问题。

我希望这对其他人也有帮助。

关于Android CalendarContract,删除重复事件会导致所有事件在日历上消失吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16392410/

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