我应该啥时候清除我的 iOS 应用程序的垃圾数据?在启动或终止期间?
Posted
技术标签:
【中文标题】我应该啥时候清除我的 iOS 应用程序的垃圾数据?在启动或终止期间?【英文标题】:When should I purge waste data for my iOS app? During launch or termination?我应该什么时候清除我的 iOS 应用程序的垃圾数据?在启动或终止期间? 【发布时间】:2013-10-30 14:54:26 【问题描述】:我使用 CoreData,我正在考虑何时应该删除废弃(或过期)数据。
据我所知,要点如下:
-
应用启动时。
应用程序终止时。 (在应用代理的
applicationWillTerminate:
)
我猜是没有风险的,但我不希望用户在清除过程中等待。 (我知道看门狗异常。如果purge时间超过20秒,我会准备一个视图控制器等待。)
两个看起来不错。用户看不到等待时间。但是,我不确定这一点是否合适?有人说后台进程时间有限。
【问题讨论】:
【参考方案1】:无论哪种方式,您很可能会从在辅助线程上运行清理中受益。不过,您很可能无法使用第二个选项:
根据Apple docs 与applicationWillTerminate
的关系:
您实施此方法大约需要 5 秒时间 执行任何任务并返回。如果方法之前没有返回 时间到了,系统可能会干脆杀掉这个进程。
您可以使用的一个选项是清理applicationDidEnterBackground:
,但这也有一些复杂性:
您实施此方法大约需要 5 秒时间 执行任何任务并返回。如果您需要额外的时间来执行 任何最终任务,您都可以从 系统通过调用 beginBackgroundTaskWithExpirationHandler:。在 练习,你应该从 applicationDidEnterBackground: 返回 尽快。如果方法在时间运行之前没有返回 你的应用程序被终止并从内存中清除。
这可能是一个更好的解决方案,您可以通过我链接到的文档深入了解一些建议。虽然在应用程序启动期间这样做可能最容易。
【讨论】:
你是我的英雄。我几乎犯了一个大错误。是的。我会读它,我会听从你的建议。 @zono 很高兴它有帮助!祝你好运!以上是关于我应该啥时候清除我的 iOS 应用程序的垃圾数据?在启动或终止期间?的主要内容,如果未能解决你的问题,请参考以下文章
我啥时候应该使用“隐藏文本框”,啥时候应该使用(html 5)“数据属性”?