我的应用程序执行后台提取以更新一些数据。在我的初始 View Controller 中 viewDidLoad
方法 我想检测我的应用程序是否为后台获取运行?
我知道使用这个检查应用程序的状态非常容易:
if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
return; // have a breakpoint here <----
}
但出于某种原因,即使我正常启动应用程序,有时程序也会到达此断点。这意味着 applicationState
返回 UIApplicationStateBackground
.也许应用程序启动发生在后台获取正在运行或类似情况的那一刻?
我不想执行我的 viewDidLoad
中的代码应用程序在后台模式下运行时的方法,所以我需要这个 if
阻止 viewDidLoad
.
最佳答案
当您的 viewDidLoad 方法被调用时,它将处于前台(状态为 UIApplicationStateInactive 或 UIApplicationStateActive),因此在 viewDidLoad 中请求 UIApplicationStateBackground 是没有意义的,有关更多信息,请阅读此 link .
关于ios - UIApplication 应用状态返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28474423/