"Too many Calendar deletes" 错误来自 Android 日历提供商
"Too many Calendar deletes" error by Android calendar provider
我正在使用日历提供程序来创建和删除事件。
当我尝试删除事件时,某些设备出现问题。 Android OS 显示一条通知:
"Too many Calendar deletes"
有继续进行的选项。
我无法在 Android 中找到修复它的答案,只能阅读日历 API 限制。但是通过此通知向客户提供功能是不可接受的。
我在运行下面一行删除一个事件:
context.getContentResolver().delete(eventUri, null, null);
谢谢!
恐怕没有绕过此消息的“正确”方法,您也不应该尝试。这是因为同步适配器在尝试同步后将 tooManyDeletions flag in the SyncResult 对象设置为 true
。
如果标志设置为 true
.
,同步管理器将始终显示此消息
允许删除的数量由相应的同步适配器或同步到的 API 定义。因此,如果您看到该消息取决于帐户类型,甚至可能取决于同步适配器的版本。
这是一种保护用户数据不被错误删除的机制(无论是他自己还是被损坏的软件)。
您可以尝试通过在您的代码设置 SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS 标志的相应帐户上触发同步来欺骗 SyncManager 和同步适配器,但您真的不应该这样做那。实际上,如果它有效,我会认为这是 Android 中的一个错误。
您应该将此传达给用户并将其作为一项功能进行销售。
更新:
要触发与 SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS
的同步,请调用:
Bundle extras = new Bundle();
extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
extras.putBoolean(ContentResolver.SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS, true);
ContentResolver.requestSync(accountOfCalendar, CalendarContract.Authority, extras);
accountOfCalendar
是您从中删除事件的日历的帐户。
小心使用。
我正在使用日历提供程序来创建和删除事件。
当我尝试删除事件时,某些设备出现问题。 Android OS 显示一条通知:
"Too many Calendar deletes"
有继续进行的选项。
我无法在 Android 中找到修复它的答案,只能阅读日历 API 限制。但是通过此通知向客户提供功能是不可接受的。
我在运行下面一行删除一个事件:
context.getContentResolver().delete(eventUri, null, null);
谢谢!
恐怕没有绕过此消息的“正确”方法,您也不应该尝试。这是因为同步适配器在尝试同步后将 tooManyDeletions flag in the SyncResult 对象设置为 true
。
如果标志设置为 true
.
允许删除的数量由相应的同步适配器或同步到的 API 定义。因此,如果您看到该消息取决于帐户类型,甚至可能取决于同步适配器的版本。
这是一种保护用户数据不被错误删除的机制(无论是他自己还是被损坏的软件)。
您可以尝试通过在您的代码设置 SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS 标志的相应帐户上触发同步来欺骗 SyncManager 和同步适配器,但您真的不应该这样做那。实际上,如果它有效,我会认为这是 Android 中的一个错误。
您应该将此传达给用户并将其作为一项功能进行销售。
更新:
要触发与 SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS
的同步,请调用:
Bundle extras = new Bundle();
extras.putBoolean(ContentResolver.SYNC_EXTRAS_MANUAL, true);
extras.putBoolean(ContentResolver.SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS, true);
ContentResolver.requestSync(accountOfCalendar, CalendarContract.Authority, extras);
accountOfCalendar
是您从中删除事件的日历的帐户。
小心使用。