UIApplication 将在后台运行多长时间
Posted
技术标签:
【中文标题】UIApplication 将在后台运行多长时间【英文标题】:how much time UIApplication is going to run in the background state 【发布时间】:2014-01-23 13:13:45 【问题描述】:请帮我看看 UIApplication 在后台运行多长时间。比如当我们按下主页按钮等时
【问题讨论】:
【参考方案1】:限制如下:
ios6 10 分钟 iOS7 3 分钟就在您的应用委托实现中:
- (void)applicationDidEnterBackground:(UIApplication *)application
UIApplication *app = [UIApplication sharedApplication];
__block UIBackgroundTaskIdentifier bgTask = 0;
bgTask = [app beginBackgroundTaskWithExpirationHandler:^
[app endBackgroundTask:bgTask];
bgTask = UIBackgroundTaskInvalid;
];
在 600 秒 (iOS6) 或 180 秒 (iOS7) 之后,将调用过期处理程序 - 您必须立即完成 - 任何耗时的任务或应用都不会崩溃。
【讨论】:
【参考方案2】:我建议你看看Background Execution and Multitasking,简单地说:
大多数应用在进入 背景。只有为用户提供重要服务的应用程序才是 允许继续运行任意时间
【讨论】:
【参考方案3】:它运行大约 5 秒。 你也可以做一个特殊的过程来要求更多的时间来结束一个长任务(比如上传等)。
这里解释了一切:https://developer.apple.com/library/ios/documentation/iphone/conceptual/iphoneosprogrammingguide/ManagingYourApplicationsFlow/ManagingYourApplicationsFlow.html
阅读愉快:)
【讨论】:
【参考方案4】:应用程序在后台执行代码。大多数应用程序在被暂停的过程中会短暂进入此状态。但是,请求额外执行时间的应用程序可能会在此状态下保持一段时间。此外,直接在后台启动的应用程序会进入此状态而不是非活动状态。有关如何在后台执行代码的信息,请参阅“Background Execution and Multitasking”。
已编辑:
对某些类型的后台执行的支持必须由使用它们的应用提前声明。在 Xcode 5 及更高版本中,您可以从项目设置的 Capabilities 选项卡中声明应用支持的后台模式。启用 Background Modes 选项会将 UIBackgroundModes 键添加到应用程序的 Info.plist 文件中。选择一个或多个复选框会将相应的背景模式值添加到该键。表 3-4 列出了您可以指定的背景模式以及 Xcode 分配给应用程序 Info.plist 文件中 UIBackgroundModes 键的值。
【讨论】:
以上是关于UIApplication 将在后台运行多长时间的主要内容,如果未能解决你的问题,请参考以下文章
后台运行之[[UIApplication sharedApplication] beginBackgroundTaskWithExpirationHandler:nil]
应用程序调试 - 是啥决定了我的应用程序在后台停留多长时间?