为什么在iOS 11中,我的UIApplicationState显示为非活动状态而不是活动状态?

阿比拉什(Abilash)Balasubramanian

我已经更新到最新的xcode-9和iOS 11,现在我在UIApplicationState中遇到问题。谁能告诉我为什么苹果在ApplicationState中做了此更改。

例如:在viewController viewWillAppear期间,我正在检查UIApplicationState:

     UIApplicationState applicationState = [UIApplication sharedApplication].applicationState;
        if (applicationState == UIApplicationStateActive)
        {
        }

但是我正在获得applicationState = UIApplicationStateInactive。

还是我需要通过额外的代码分别处理iOS 11版本:

  if (applicationState == UIApplicationStateActive || (@available(iOS 11, *) && applicationState == UIApplicationStateInactive)){
}

还有其他答案可以在所有版本中始终保持应用程序状态吗?

提前致谢,

CodeBender

**更新的答案**

我使用以下代码在iOS 10和iOS 11设备上测试状态。

import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        print("\(#function) active: \(UIApplication.shared.applicationState == .active)")
    }

    override func viewWillAppear(_ animated: Bool) {
        super.viewWillAppear(animated)
        print("\(#function) active: \(UIApplication.shared.applicationState == .active)")
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(animated)
        print("\(#function) active: \(UIApplication.shared.applicationState == .active)")

        DispatchQueue.main.asyncAfter(deadline: .now() + 0.25) {
            print("\(#function) with delay active: \(UIApplication.shared.applicationState == .active)")
        }
    }
}

在iOS 10上运行时:

viewDidLoad() active: false
viewWillAppear active: false
viewDidAppear active: true // This differs from 11
viewDidAppear with delay active: true

在iOS 11上运行时:

viewDidLoad() active: false
viewWillAppear active: false
viewDidAppear active: false
viewDidAppear with delay active: true

我不能告诉你这是否是故意的,但是肯定已经改变了。也许对它提起雷达?

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在iOS中检测非活动状态(无用户交互)以显示单独的屏幕(例如叠加层)

为什么我的Systemd单元arkos-redis已加载,但处于非活动状态(已死)?

定位服务在iOS 8中进入“非活动”状态

为什么我的NavLink不能使用Semantic-ui-react设置为活动状态?

为什么在我的系统状态时,“活动:活动(运行)”行仅显示正在运行还是已停止?

当我为所有状态设置背景图像时,为什么UISegmentControl段在iOS 8中突出显示?

为什么iptables已加载并处于活动状态,而在“ ps aux”中没有显示pid号?

为什么我的活动没有显示?

为什么我的React组件状态显示在我的URL中?

为什么collectionViewCells无法在iOS中显示?

systemd:为什么该服务处于非活动状态(死机)?

为什么我的 Apple Watch OS 应用程序只能在我的 iOS 应用程序处于活动状态时接收消息?

为什么即使我没有显式启动JPA / Hibernate事务也仍处于活动状态

尝试关闭线程后,为什么我的线程仍然处于活动状态?

尽管 TMUX 会话处于活动状态,为什么我的远程连接停止工作?

如果我“杀死”了ssh服务器,为什么ssh会话仍处于活动状态?

RightBarButtonItem仅显示为非活动状态

在IOS中隐藏状态栏时显示网络活动指示器

UFW处于活动状态但未启用,为什么?

为什么刷新后按钮处于活动状态?

为什么主页选项卡始终处于活动状态?

为什么要使用post使会话保持活动状态?

iOS:为什么 UIWindow 不显示?

ios为什么buttonItem不显示?

当我的应用程序在 IOS 中处于活动状态时如何阻止屏幕截图

为什么在iOS 8中调用viewWillRotateToInterfaceOrientation?

我如何在 angular 中添加 ngClass 以显示状态为活动的红色,其他应为非活动的黑色

如何显示布尔状态为活动或非活动

菜单jQuery状态为活动状态为非活动状态