为什么applicationDidBecomeActive在通知中心完全打开后立即调用?

Mik*_*nov 7 iphone application-lifecycle ios ios11

我一直在玩iOS应用程序生命周期来学习它.我创建了一个超级简单的应用程序,它只打印调用的应用程序委托方法.但是,我观察到一些奇怪的行为.

[案例1]当我从底部向上滑动到打开控制中心时,我只得到跟随的委托方法(我只是打开它,不要关闭):

  1. applicationWillResignActive

[案例2]当我从上到下滑动到打开通知中心时,我得到以下序列(同样在这里 - 只需打开它,不要关闭):

  1. applicationWillResignActive //在这里我开始拖动
  2. applicationDidBecomeActive //通知中心打开了,我的应用程序不应该在这里完全不活动吗?
  3. applicationWillResignActive

当Notification Center完全打开时,方法2和3几乎立即被调用(看起来在调用之间约为1ms或更短),这令人困惑.

所以,问题是:

  • 这是预期的行为吗?
  • 如果是,那么在didBecomeActive中应该/可能会采取什么行动?
  • 从用户点操作如此相似导致应用程序生命周期的不同行为之间的iOS /编程点有什么区别?

PS在iPhone和模拟器上使用最新的Xcode(9.3)和iOS(11.3)获得了相同的结果.