从后台线程检查`[[UIApplication sharedApplication] applicationState]`,而不在Xcode 9中抛出警告?

时间:2017-10-30 06:27:43

标签: ios xcode multithreading uikit uiapplication

我需要从非主线程检查应用是否在后台以及它的backgroundTimeRemaining是什么。 - 显然在不发出警告的情况下不再允许这样做。我提交了一个雷达,但苹果公司表示这是按预期工作的。

所以,如果你不在主线程上,你如何检查这些属性?将它们缓存到其他不会抛出此警告的变量?看起来很傻......

1 个答案:

答案 0 :(得分:-1)

确实,解决方案是检查backgroundTimeRemaining块中的dispatch_get_main_queue或将值存储在临时变量中。

dispatch_async(dispatch_get_main_queue(), ^{
  double bgTime = [UIApplication sharedApplication].backgroundTimeRemaining;
});