我的应用执行后台提取以更新一些数据。在我的初始视图控制器的viewDidLoad
方法中,我想检测我的应用程序是否运行以进行后台提取?
我知道使用此功能检查应用程序的状态非常容易:
if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
return; // have a breakpoint here <----
}
但由于某种原因,即使我正常启动应用程序,有时程序也可以达到此断点。这意味着applicationState
会返回UIApplicationStateBackground
。也许应用程序启动发生在后台提取正在运行或类似的时候?
当应用在后台模式下运行时,我不想执行viewDidLoad
方法中的代码,因此我需要if
中的viewDidLoad
块。
答案 0 :(得分:1)
当您的 viewDidLoad 方法被调用时,它将位于前台(状态为 UIApplicationStateInactive 或 UIApplicationStateActive ),因此在 viewDidLoad 中请求 UIApplicationStateBackground 是没有意义的,有关详细信息,请阅读此link。