为什么我的UIApplicationDelegate在下拉通知中心时会收到applicationDidBecomeActive?

Ant*_*ser 11 ios

我在XCode中构建了一个没有功能的裸应用程序,并将日志语句放在applicationDidBecomeActive和applicationWillResignActive方法中.

当我向下滑动以显示通知中心时,我看到以下内容:

2018-01-03 10:18:16.867028 + 0000 BareProject [1165:2053601]辞职有效

2018-01-03 10:18:17.510713 + 0000 BareProject [1165:2053601]有效

2018-01-03 10:18:17.634805 + 0000 BareProject [1165:2053601]辞职有效

这是有意的吗?我的代码做了很多的工作变得活跃时,只有有地毯从它再次约120毫秒后拉出,似乎文档说我应该使用applicationDidBecomeActive重启任务: https://developer.apple. COM /文档/ UIKit中/ uiapplicationdelegate/1622956-applicationdidbecomeactive?语言= objc

我在ios 10.3上试过这个并且这个行为不存在.

Dev*_*sta 6

实际上有两个问题,对的意外调用applicationDidBecomeActive:和对的重复调用applicationWillResignActive:

“下拉”以显示用于在iOS 9上正常运行的通知中心。仅applicationWillResignActive:用于系统调用,仅通过iOS 9 Simulator进行了验证。

在iOS 11.2.6上,applicationDidBecomeActive:您所描述的gets调用似乎是一个Apple bug。在这种特殊情况下,系统行为与文档冲突。这是文档偏离您观察到的行为的另一个示例https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072 -CH8-SW10

当您的应用返回到活动状态时,其applicationDidBecomeActive:方法应撤消applicationWillResignActive:方法中采取的任何步骤。