就像标题中所说的那样,我在iOS 11和12中发现了意外行为。
有谁知道为什么调用此事件,并且更重要的是,是否有任何变通办法来防止系统触发此UIApplication.didBecomeActiveNotification
事件?
以下是重现此行为的步骤:
UIApplication.didBecomeActiveNotification
事件。您只需在AppDelegate.swift文件中添加日志即可进行测试,例如:
func applicationDidBecomeActive(_ application: UIApplication) {
print("applicationDidBecomeActive")
}
我将其称为意外,因为当出现“通知中心屏幕”时,除非通知中心屏幕出现,否则应用程序应从字面意义上应转换为(至少是半)后台模式,而不应返回至前景模式。消失(例如,向上滑动到屏幕的最上方)。
我还观察到,“控制中心”屏幕显示时,事件并未触发。
在我的应用中,我尝试控制应用进入背景(或半背景)时的视频播放器状态。意外的.didBecomeActiveNotification
事件使状态控制工作流程烦恼。
我在Open Radar上搜索,然后在Google上搜索了一段时间,但没有出现相关主题。
任何建议将不胜感激。谢谢。
答案 0 :(得分:0)
func applicationWillResignActive(_ application:UIApplication)可以代替.didBecomeActiveNotification用来在应用程序进入后台或半后台状态时得到通知。
访问iPhone或iPad上的通知中心屏幕(从设备屏幕的顶部向下滑动)将调用applicationWillResignActive,如果我们向上滑动通知中心,则不会触发该事件。