是否有其他人在applicationDidBecomeActive
错误地触发新iPhone X上的应用停用时遇到问题?
这是我的测试应用程序:
class ViewController: UIViewController {
required init?(coder aDecoder: NSCoder) {
super.init(coder:aDecoder)
NotificationCenter.default.addObserver(
self,
selector: #selector(fired),
name: .UIApplicationDidBecomeActive,
object: nil
)
}
@objc func fired(_:Any) {
print("fired")
}
}
在iPhone X模拟器上运行该应用程序。当然,我在控制台中看到“被解雇”。到现在为止还挺好。现在向侧面或向上滑动家庭指示器,切换到其他应用程序或调出应用程序切换器。我看到“解雇”再次出现在控制台中!
这似乎是错误的,并且把我的所有应用程序都扔进了一个混乱的地方。如何处理停用时获取激活通知?
答案 0 :(得分:2)
事实上,当iPhone X Simulator中的应用程序停用时,有三个快速连续发出的通知:
这是错误的(您可能想要提交错误报告),但如果用户可能会发生错误 停用 - 激活 - 快速停用应用程序,以便应用程序 无论如何应该应对这种情况。
两个通知都必须以对称的方式处理(即使有了这个bug,它们也会得到适当的平衡):完成的操作 “激活”必须在“停用”时反转。