我正在使用日历提供程序来创建和删除事件。
尝试删除事件时,某些设备会出现此问题。 Android操作系统会显示一条通知:
“删除太多日历”
可选择继续。
我找不到在Android中修复它的答案,只阅读有关日历API限制的内容。但通过此通知为客户提供功能是不可接受的。
我正在运行以下行来删除事件:
UITableViewCell
谢谢!
答案 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
是您从中删除事件的日历帐户。
小心使用。