gpt4 book ai didi

iphone - 有条件地禁用 iOS 应用程序的后台?

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

我正在使用一个由从服务器获取的数据提供支持的应用程序。获取逻辑相当健壮和容错;大多数连接错误都会自动重试,这通常效果很好。但是,在极少数情况下(包括涉及网络延迟和后端数据库的竞争条件),应用程序/服务器可能会进入无法恢复的不一致状态。

我想要做的是让应用程序在这种状态下,在用户下次按下主页按钮时简单地终止(而不是进入后台)。该应用程序在重新启动时将与服务器重新同步,用户将继续他/她的快乐方式。

我的第一个想法是在检测到不一致状态时从 applicationDidEnterBackground 调用 exit()。 有没有人对这类事情有任何经验或知道另一种有条件地禁用背景的方法?我知道这是不受欢迎的,有没有人有过 Apple 通过检测 exit() 的使用明确拒绝应用程序的经验? UIApplicationExitsOnSuspend = YES 不是一个选项,因为多任务处理需要按预期工作,其他 99.999%时间。

注意:对于缺乏细节,我深表歉意。理想的解决方案是想出一种从不一致状态中恢复的方法;相信我,当我说花费了大量的时间和精力来找出这样做的方法时,请相信我。

最佳答案

Apple 强烈反对使用 exit(),根据他们的 Technical Q&A QA1561 :

WARNING: It is possible to quit the application by calling exit. Applications calling exit will appear to the user to have crashed, rather than performing a graceful termination and animating back to the Home screen. Such usage provides a negative experience and is strongly discouraged.

使用 exit() 应该显示为崩溃,就像断言失败一样。如果审阅者在测试您的应用程序时遇到这种情况,则很可能会被拒绝。

但是,如果这种情况很少见,您可以掷骰子并希望审阅者永远不会遇到它。这是一场赌博,你也许可以逃脱,但我不知道这是否是最好的攻击计划。

如果你能识别出这种不一致,我不明白为什么你不能删除所有内存存储并有效地从头开始,就像你在应用程序的新启动时一样。我有一个罕见的案例,我的核心数据数据库会由于撤消/重做/撤消循环而变得不一致,这就是我从中恢复的方法。

关于iphone - 有条件地禁用 iOS 应用程序的后台?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4572279/

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