【问题标题】:How to check whether any UIBackgroundTask is active through out the app?如何检查整个应用程序中是否有任何 UIBackgroundTask 处于活动状态?
【发布时间】:2013-09-27 12:39:08
【问题描述】:

每当需要完成一项任务时,我都会在我的应用程序的许多地方使用beginBackgroundTaskWithExpirationHandler,当任务结束时我会使用endBackgroundTask。 我的代码中有一些关键部分我想知道应用程序当前是否可以暂停(如果后台运行)。

所以,每当我执行endBackgroundTask 时,我想检查整个应用程序中是否有任何UIBackgroundTaskIdentifier不是 UIBackgroundTaskInvalid,以便我可以通知应用程序的所有关键部分不再受到任何beginBackgroundTaskWithExpirationHandler 的保护并且可以暂停。 [UIApplication sharedApplication] 是否有任何属性可以存储这些值?或者任何其他方式知道这一点?

【问题讨论】:

  • 或者我是否必须维护一个全局变量来保持所有后台任务开始的计数?

标签: ios objective-c background-process multitasking suspend


【解决方案1】:

如果您想从应用程序的下部访问它,我相信您必须将其值存储为属性。如果您将其存储为您的应用委托的属性,您可以通过以下方式在任何地方访问它:

[[[UIApplication sharedApplication] delegate] backgroundTask]

【讨论】:

  • 是的......所以存储可能是访问该信息的唯一方法。 iOS 应该为此提供一些机制。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 2020-01-11
  • 2019-12-10
相关资源
最近更新 更多