iphone - 在 iOS 4+ 上长时间后在后台执行简单任务

标签 iphone ios scheduled-tasks background-process

让我重新措辞以使其更清楚:

如何在我的应用进入后台 20 分钟后让“警报”响起?


老问题:

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

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

最佳答案

当您的应用程序进入后台时,系统将尝试重新收集尽可能多的资源,如图像、 Nib 等。您会收到通知。 (– applicationDidEnterBackground: 等) 之后,它将根据资源使用顺序“排序”所有后台生活应用程序。使用更多资源的应用程序优先。 然后,当一个新应用程序进入前台时,如果系统认为它需要比当前更多的资源,它将开始杀死后台应用程序。使用上面的排序列表。

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

您可能想阅读 this Apple doc关于如何在后台做某事(有一些时间限制,偏离路线),可能还有 UIApplicationDelegate类引用。

希望对您有所帮助;)

关于iphone - 在 iOS 4+ 上长时间后在后台执行简单任务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3967563/

相关文章:

javascript - 根据来自 php 脚本的作业订单安排 cron 作业的更好方法

iphone - 如何创建音频停止按钮?

iphone - 将当前时间与固定时间进行比较 05 :00:00 PM

iphone - iPhone Simulator中的默认 map 应用无法确定位置

iphone - 如何在没有 Interface Builder 的情况下在 UIViewController 中实现 UISearchDisplayController

linux - 创建计划任务每​​天为我们的系统文件创建增量备份

postgresql - 计划将数据从 dblink 插入到本地表中

ios - 类型 'GKEntity' 的值没有成员 'componentForClass' 。为什么我在 swift 3.0 中找不到这个方法?

ios - SWIFT:很难在 tableView 中显示数据

iphone - UIModalTransitionStyleFlipHorizo​​ntal 垂直?