【问题标题】:Do simple task in the background after a long time on iOS 4+在 iOS 4+ 上长时间在后台做简单的任务
【发布时间】:2010-10-19 10:51:25
【问题描述】:

让我改写一下以使其更清楚:

如何在我的应用进入后台 20 分钟后发出“警报”?


老问题:

在 iOS 上,如何在 5-10-60 分钟后获得最简单的体验?本质上,在预定义的时间间隔后触发 NSTimer。

我做“开始任务”,睡眠(一段时间);然后“结束任务”。但是,如果我睡超过 5 分钟,我的应用程序通常会被杀死。我看过一些帖子提到应用程序可以在后台运行几个小时,这究竟是如何实现的?

【问题讨论】:

    标签: iphone ios scheduled-tasks background-process


    【解决方案1】:

    当您的应用程序进入后台时,系统将尝试尽可能多地收集您可以提供给他的资源,例如图像、笔尖等。您对此有一个通知。 (– applicationDidEnterBackground:等) 之后,它将根据资源使用顺序对所有后台生活应用程序进行“排序”。使用更多资源的应用程序首先出现。 然后,当一个新应用程序出现在前台时,如果系统认为它需要比当前更多的资源,它将开始杀死后台应用程序。使用上面的排序列表。

    这意味着您在后台使用的资源越少,您的应用寿命就越长。但是,不能保证它会长寿。 (一切都取决于用户的使用情况)。当它被杀死时也没有通知!所以你不能假设你的应用程序会存活 60 分钟。

    您可能想阅读 this Apple doc 关于如何在后台做某事(有一些时间限制,偏离课程)以及可能还想阅读 UIApplicationDelegate 课程参考。

    希望对你有帮助;)

    【讨论】:

    • 感谢您,我已阅读这些文档,但找不到有关如何操作的具体说明。我想我可能会尝试使用“setKeepAliveTimeout:handler:”并将我的应用程序注册为 VOIP 应用程序,看看 Apple 是否拒绝它......这似乎是最安全的选择。在此之前,我将尝试释放您提到的所有应用程序的资源、笔尖和图像,即使它并没有使用太多。
    【解决方案2】:

    只需使用本地通知

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-10-26
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2020-02-08
      • 1970-01-01
      相关资源
      最近更新 更多