ine*_*cii 5 nsnotificationcenter ios swift
正如标题所说,我在 iOS 11 和 12 中发现了这种意外行为。
有谁知道为什么会调用此事件,更重要的是,是否有任何解决方法可以防止系统触发此事件UIApplication.didBecomeActiveNotification事件?
以下是重现此行为的步骤:
UIApplication.didBecomeActiveNotification会触发一个事件。您可以简单地在 AppDelegate.swift 文件中添加一个日志进行测试,例如:
func applicationDidBecomeActive(_ application: UIApplication) {
print("applicationDidBecomeActive")
}
Run Code Online (Sandbox Code Playgroud)
我称之为意外,因为当通知中心屏幕出现时,应用程序实际上应该转向(至少半)后台模式而不是回到前台模式,除非通知中心屏幕消失(例如通过向上滑动到上方)屏幕最顶部)。
我还观察到,当控制中心屏幕出现时,事件没有被触发。
在我的应用程序中,当应用程序进入后台(或半后台)时,我正在尝试控制视频播放器的状态。意想不到的.didBecomeActiveNotification扰乱了状态控制工作流程。
我在Open Radar上搜索过和 here 上搜索并用谷歌搜索了一段时间,没有出现这样的相关主题。
任何建议将不胜感激。谢谢你。
小智 0
func applicationWillResignActive(_ application: UIApplication)可以用来代替 .didBecomeActiveNotification,以便在应用程序进入后台或半后台状态时收到通知。
在 iPhone 或 iPad 上访问通知中心屏幕(通过从设备屏幕的最顶部向下滑动)将调用 applicationWillResignActive,如果我们向上滑动通知中心,则不会触发该应用程序。
| 归档时间: |
|
| 查看次数: |
903 次 |
| 最近记录: |