ios - UIApplication 应用状态返回错误值

标签 ios background-fetch

我的应用程序执行后台提取以更新一些数据。在我的初始 View Controller 中 viewDidLoad方法 我想检测我的应用程序是否为后台获取运行?

我知道使用这个检查应用程序的状态非常容易:

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

但出于某种原因,即使我正常启动应用程序,有时程序也会到达此断点。这意味着 applicationState返回 UIApplicationStateBackground .也许应用程序启动发生在后台获取正在运行或类似情况的那一刻?

我不想执行我的 viewDidLoad 中的代码应用程序在后台模式下运行时的方法,所以我需要这个 if阻止 viewDidLoad .

最佳答案

当您的 viewDidLoad 方法被调用时,它将处于前台(状态为 UIApplicationStateInactiveUIApplicationStateActive),因此在 viewDidLoad 中请求 UIApplicationStateBackground 是没有意义的,有关更多信息,请阅读此 link .

enter image description here

关于ios - UIApplication 应用状态返回错误值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28474423/

相关文章:

iOS 自定义键盘扩展自动布局

iphone - UICollectionView willDisplayCell 委托(delegate)方法?

ios - 如果应用程序已终止,将调用 performFetchWithCompletionHandler

ios - 如何检测我的应用程序是否已在 didFinishLaunchingWithOptions 方法中启动以进行后台提取?

ios - 在普通的 UIButton 上单击 PopOverWindow

iOS 如何动态确定 UILabel 的大小

ios - 当我模拟后台提取时,我收到一条警告,说从未调用完成处理程序

ios - 后台获取超过30秒

ios - 从具有多个返回值的函数创建常量