首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我的UIApplicationDelegate在关闭通知中心时会收到applicationDidBecomeActive?

为什么我的UIApplicationDelegate在关闭通知中心时会收到applicationDidBecomeActive?
EN

Stack Overflow用户
提问于 2018-01-03 18:32:23
回答 2查看 1.2K关注 0票数 15

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

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

2018年01月03日10:18:16.867028+0000 BareProject1165:2053601主动辞职

2018年01月03日10:18:17.510713+0000 BareProject1165:2053601活动

2018年01月03日10:18:17.634805+0000 BareProject1165:2053601主动辞职

这是故意的吗?我的代码在激活时做了相当多的工作,只是在大约120ms之后再次出现问题,而且文档似乎说我应该使用applicationDidBecomeActive重新启动任务:https://developer.apple.com/documentation/uikit/uiapplicationdelegate/1622956-applicationdidbecomeactive?language=objc

我在iOS10.3上尝试过,但这个行为并不存在。

EN

回答 2

Stack Overflow用户

发布于 2018-03-16 06:51:14

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

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

在iOS 11.2.6上,applicationDidBecomeActive:会像你描述的那样被调用,这看起来像是苹果的一个bug。在这种特殊情况下,系统行为与文档冲突。下面是文档与您观察到的https://developer.apple.com/library/content/documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/StrategiesforHandlingAppStateTransitions/StrategiesforHandlingAppStateTransitions.html#//apple_ref/doc/uid/TP40007072-CH8-SW10行为不同的另一个示例

当您的应用程序移回活动状态时,它的applicationDidBecomeActive:方法应该撤销在applicationWillResignActive:方法中执行的任何步骤。

票数 8
EN

Stack Overflow用户

发布于 2021-11-16 14:50:08

看起来这是一个bug,它变成了正常的行为

您需要查找applicationDidEnterBackground

但是,如果您需要为此处理代码,您可以使用以下代码,以便在通知中心向下滑动时不在applicationDidBecomeActive中运行代码

代码语言:javascript
复制
class AppDelegate: UIResponder, UIApplicationDelegate {
    
    var didEnterBackground = true
    
    func applicationDidBecomeActive(_ application: UIApplication) {
       if !didEnterBackground {
           return
       }
       didEnterBackground = false

       // run your code       
    }
    
    func applicationDidEnterBackground(_ application: UIApplication) {
        didEnterBackground = true
    }
    
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48075608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档