applicationDidBecomeActive 在 iPhone X 停用时触发
applicationDidBecomeActive firing on deactivation on iPhone X
是否有其他人遇到 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 模拟器上的应用程序。自然地,我在控制台中看到了 "fired"。到目前为止,一切都很好。现在向侧面或向上滑动主页指示器,切换到不同的应用程序或调出应用程序切换器。我看到 "fired" 再次出现在控制台中!
这似乎是错误的,并且将我所有的应用程序都扔进了混乱中。我该如何应对在停用时收到激活通知?
事实上,当应用程序在 iPhone X 模拟器中停用时,会快速连续触发三个通知:
- UIApplicationWillResignActive
- UIApplicationDidBecomeActive
- UIApplicationWillResignActive
这是错误的(您可能想要提交错误报告),但如果用户 可能
停用 - 激活 - 快速停用应用程序,因此应用程序
无论如何都应该应付这种情况。
两个通知都必须以对称的方式处理(并且它们得到适当的平衡,即使有那个错误):已完成的操作
在 "activate" 上必须在 "deactivate" 上反转。
是否有其他人遇到 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 模拟器上的应用程序。自然地,我在控制台中看到了 "fired"。到目前为止,一切都很好。现在向侧面或向上滑动主页指示器,切换到不同的应用程序或调出应用程序切换器。我看到 "fired" 再次出现在控制台中!
这似乎是错误的,并且将我所有的应用程序都扔进了混乱中。我该如何应对在停用时收到激活通知?
事实上,当应用程序在 iPhone X 模拟器中停用时,会快速连续触发三个通知:
- UIApplicationWillResignActive
- UIApplicationDidBecomeActive
- UIApplicationWillResignActive
这是错误的(您可能想要提交错误报告),但如果用户 可能 停用 - 激活 - 快速停用应用程序,因此应用程序 无论如何都应该应付这种情况。
两个通知都必须以对称的方式处理(并且它们得到适当的平衡,即使有那个错误):已完成的操作 在 "activate" 上必须在 "deactivate" 上反转。