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应该为此提供一些机制。