Ios 如何通过应用程序检查是否有UIBackgroundTask处于活动状态?

Ios 如何通过应用程序检查是否有UIBackgroundTask处于活动状态?,ios,objective-c,background-process,multitasking,suspend,Ios,Objective C,Background Process,Multitasking,Suspend,每当需要完成任务时,我会在我的应用程序中的许多地方使用beginBackgroundTaskWithExpirationHandler,任务结束时我会使用endBackgroundTask。 在我的代码中有一些关键部分,我想知道应用程序当前是否可以挂起(如果是后台的话) 因此,当我执行endBackgroundTask时,我想检查整个应用程序中的任何UIBackgroundTaskIdentifier是否为而不是UIBackgroundTaskInvalid,以便我可以通知所有关键部分,该应用程

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

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

我相信,如果您想从应用程序的较低层访问它,您必须将其值存储为属性。如果将其存储为应用程序代理的属性,则可以通过以下方式在任何位置访问它:

[[[UIApplication sharedApplication] delegate] backgroundTask]

或者我必须维护一个全局变量来保持所有后台任务的开始计数吗?是的……所以存储可能是访问该信息的唯一方法。iOS应该为此提供一些机制。