applicationDidBecomeActive 未调用,而其他委托正常调用

问题描述 投票:0回答:2

就像标题一样,我在某些用户设备上遇到了一个非常奇怪的错误。我已经搜索过,但找不到任何与我完全相同的问题。

以下是有关此错误的更多详细信息:

  • applicationDidBecomeActive 未被调用,但其他委托(didFinishLaunchingWithOptions、applicationWillEnterForeground、applicationDidEnterBackground,...)被正常调用。
  • 重启设备后错误消失。
  • 并不总是发生,一切正常,然后突然出现这个错误并破坏了我的应用程序流程。
  • 当我的应用程序出现此错误时,其他应用程序如果使用 applicationDidBecomeActive 执行某些重要操作(如我所见的 Facebook Messenger,它无法重置未读消息和徽章编号),也会面临相同的错误。

我相信这是一个iOS系统错误,有人可以确认吗?如果没有,我该如何解决? 谢谢!

ios appdelegate lifecycle
2个回答
2
投票

SceneDelegate 覆盖 AppDelegate 方法。

enter image description here enter image description here

您可以在 SceneDelegate 中实现代码或从目标中删除 SceneDelegate:查看操作方法:https://stackoverflow.com/a/59006569/1111879


0
投票

来自苹果文档:

重要如果您正在使用场景(请参阅场景),UIKit 将不会调用 这个方法。使用

sceneDidBecomeActive(_:)
来重新启动任何任务 或刷新应用程序的用户界面。 UIKit 发布了一个
didBecomeActiveNotification
无论您的应用程序是否使用 场景。

Xcode 默认创建的项目始终使用场景。

© www.soinside.com 2019 - 2024. All rights reserved.