UIApplication的applicationState返回错误的值

时间:2015-02-12 09:59:27

标签: ios background-fetch

我的应用执行后台提取以更新一些数据。在我的初始视图控制器的viewDidLoad方法中,我想检测我的应用程序是否运行以进行后台提取?

我知道使用此功能检查应用程序的状态非常容易:

if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
    return; // have a breakpoint here <----
}

但由于某种原因,即使我正常启动应用程序,有时程序也可以达到此断点。这意味着applicationState会返回UIApplicationStateBackground。也许应用程序启动发生在后台提取正在运行或类似的时候?

当应用在后台模式下运行时,我不想执行viewDidLoad方法中的代码,因此我需要if中的viewDidLoad块。

1 个答案:

答案 0 :(得分:1)

当您的 viewDidLoad 方法被调用时,它将位于前台(状态为 UIApplicationStateInactive UIApplicationStateActive ),因此在 viewDidLoad 中请求 UIApplicationStateBackground 是没有意义的,有关详细信息,请阅读此link

enter image description here