我在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] Activity
2018-01-03 10:18:17.634805 + 0000 BareProject [1165:2053601]主动辞职
这是故意的吗?我的代码在变为 Activity 状态时做了很多工作,只是在大约120ms之后再次将地毯从中拉出,看来该文档说我应该使用applicationDidBecomeActive重新启动任务:
https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622956-applicationdidbecomeactive?language=objc
我在ios 10.3上尝试过此操作,此行为不存在。
最佳答案
实际上有两个问题,对applicationDidBecomeActive:
的意外调用和对applicationWillResignActive:
的重复调用。
“下拉”以显示用于在iOS 9上正常运行的通知中心。只有applicationWillResignActive:
曾经被系统调用,才通过iOS 9 Simulator对其进行了验证。
在iOS 11.2.6上,按照您描述的方式调用applicationDidBecomeActive:
,这似乎是一个Apple bug。在这种特殊情况下,系统行为与文档冲突。这是文档偏离您观察到的行为https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072-CH8-SW10的另一个示例
关于ios - 为什么下拉通知中心时,我的UIApplicationDelegate为什么会收到applicationDidBecomeActive?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49702003/