Android日历提供程序“删除了太多日历”错误

时间:2016-01-07 19:02:02

标签: android android-calendar

我正在使用日历提供程序来创建和删除事件。

尝试删除事件时,某些设备会出现此问题。 Android操作系统会显示一条通知:

  

“删除太多日历”

可选择继续。

我找不到在Android中修复它的答案,只阅读有关日历API限制的内容。但通过此通知为客户提供功能是不可接受的。

我正在运行以下行来删除事件:

UITableViewCell

谢谢!

1 个答案:

答案 0 :(得分:1)

我害怕,没有"正确"绕过这条消息的方法,你也不应该尝试。这是因为同步适配器在尝试同步后将tooManyDeletions对象中的SyncResult标记设置为true。 如果标志设置为true,则同步管理器将始终显示此消息。

允许删除的数量由相应的同步适配器或与其同步的API定义。因此,如果您看到消息取决于帐户类型,甚至可能取决于同步适配器的版本。

这是一种保护用户数据不会因错误而被删除的机制(无论是他自己还是破坏的软件)。

您可以尝试通过在代码设置SYNC_EXTRAS_OVERRIDE_TOO_MANY_DELETIONS标记的相应帐户上触发同步来欺骗SyncManager和同步适配器但是您真的不应该这样做< / strong>即可。实际上,如果它有效,我会认为这是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是您从中删除事件的日历帐户。

小心使用。