【问题标题】:When should I purge waste data for my iOS app? During launch or termination?我应该什么时候清除我的 iOS 应用程序的垃圾数据?在启动或终止期间?
【发布时间】:2013-10-30 14:54:26
【问题描述】:

我使用 CoreData,我正在考虑何时应该删除废弃(或过期)数据。

据我所知,要点如下:

  1. 应用启动时。
  2. 应用程序终止时。 (在应用代理的applicationWillTerminate:

我猜是没有风险的,但我不希望用户在清除过程中等待。 (我知道看门狗异常。如果purge时间超过20秒,我会准备一个视图控制器等待。)

两个看起来不错。用户看不到等待时间。但是,我不确定这一点是否合适?有人说后台进程时间有限。

【问题讨论】:

    标签: ios memory-management application-lifecycle


    【解决方案1】:

    无论哪种方式,您很可能会从在辅助线程上运行清理中受益。不过,您很可能无法使用第二个选项:

    根据Apple docsapplicationWillTerminate 的关系:

    您实施此方法大约需要 5 秒时间 执行任何任务并返回。如果方法之前没有返回 时间到了,系统可能会干脆杀掉这个进程。

    您可以使用的一个选项是清理applicationDidEnterBackground:,但这也有一些复杂性:

    您实施此方法大约需要 5 秒时间 执行任何任务并返回。如果您需要额外的时间来执行 任何最终任务,您都可以从 系统通过调用 beginBackgroundTaskWithExpirationHandler:。在 练习,你应该从 applicationDidEnterBackground: 返回 尽快。如果方法在时间运行之前没有返回 你的应用程序被终止并从内存中清除。

    这可能是一个更好的解决方案,您可以通过我链接到的文档深入了解一些建议。虽然在应用程序启动期间这样做可能最容易。

    【讨论】:

    • 你是我的英雄。我几乎犯了一个大错误。是的。我会读它,我会听从你的建议。
    • @zono 很高兴它有帮助!祝你好运!
    猜你喜欢
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    • 2011-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多