Ios 为什么我的UIApplicationLegate在下拉通知中心时接收ApplicationIDBecMeactive?

Ios 为什么我的UIApplicationLegate在下拉通知中心时接收ApplicationIDBecMeactive?,ios,Ios,我构建了一个在XCode中没有任何功能的裸应用程序,并将日志语句放在ApplicationIDBecomeActive和applicationWillResignActive方法中 当我向下滑动以显示通知中心时,我会看到以下内容: 2018-01-03 10:18:16.867028+0000 BareProject[1165:2053601]正在辞职 2018-01-03 10:18:17.510713+0000项目[1165:2053601]激活 2018-01-03 10:18:17.63

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

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

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

2018-01-03 10:18:17.510713+0000项目[1165:2053601]激活

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

这是有意的吗?我的代码在激活时做了很多工作,但在大约120毫秒后又被拉出,文档似乎说我应该使用ApplicationIDBecMeactive重新启动任务:


我在ios 10.3上尝试了此操作,但此行为不存在。

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

“下拉”显示用于在iOS 9上正常工作的通知中心。只有
applicationWillResignActive:
以前被系统调用过,只是用iOS 9模拟器进行了验证

在iOS 11.2.6上,
applicationIDbecomeactive:
会按照您的描述被调用,这看起来像是一个苹果的bug。在这种特殊情况下,系统行为与文档冲突。这里是另一个文档与您观察到的行为不同的示例

当您的应用程序移回活动状态时,其 ApplicationIDBecomeActive:方法应反转任何步骤 在应用程序willresignactive:方法中获取


这种行为在iOS 12中仍然存在。这是一种恐怖。有趣的是,当iPhone锁定自身时,这个问题也存在。首先
applicationdibecomeactive
然后立即
applicationWillResignActive
回复我的上述评论:当通知中心已经完全覆盖屏幕时,就会发生这种情况。这是一个巨大的错误。