0

在我的应用程序中,我使用 GCD 全局队列来执行一些任务。通常我的应用程序在后台模式下运行 10 分钟(GCD 工作正常,@perfomselector 也是如此)。之后什么都没有运行。

我的问题是,

  • 那个苹果是否总是允许应用程序在后台模式下执行代码 10 分钟?

  • 在这 10 分钟后是否(总是)应用程序暂停?

  • 当应用程序被挂起时,这是设置变量的任何可能方法吗?(我在一些研究过的应用程序被挂起时不会通知)

  • 有什么方法可以检查 GCD 的状态(暂停与否)

4

1 回答 1

2

那个苹果是否总是允许应用程序在后台模式下执行代码 10 分钟?

-> 正在过渡到后台的应用程序可以请求额外的时间来完成任何重要的最后一分钟任务。要请求后台执行时间,请调用 UIApplication 类的 beginBackgroundTaskWithName:expirationHandler: 方法。使用 app 对象的 backgroundTimeRemaining 属性来查看可用的时间。

在这 10 分钟后是否(总是)应用程序暂停?

-> 我认为没有像 10 分钟这样的限制。该设备仅提供有限的时间在后台执行任务。

当应用程序被挂起时,是否有任何可能的方法来设置变量?(我一些研究过的应用程序在被挂起时不会通知)

-> 否。当应用程序在后台但未执行代码时。系统会自动将应用程序移至挂起状态,并且在此之前不会通知它们。backgroundTimeRemaining 属性可能有助于获得执行某些 bg 任务的剩余时间。

于 2013-10-01T11:07:46.380 回答