【问题标题】:Strange WatchKit WKInterfaceController and WKExtensionDelegate lifecycle calls奇怪的 WatchKit WKInterfaceController 和 WKExtensionDelegate 生命周期调用
【发布时间】:2018-07-14 12:18:00
【问题描述】:

我在 WKExtensionDelegate 和 WKInterfaceController 上都添加了日志。 这是我在玩启动和退出应用程序时得到的结果 观看操作系统模拟器。 (模拟器运行watchOS 4.2)

第 1 步:第一次启动应用程序时,我看到的日志如下:

  • 初始化 ExtensionDelegate
  • applicationDidFinishLaunching
  • applicationDidBecomeActive
  • 在上下文中醒来
  • 将激活
  • 出现了

第 2 步:当我在应用程序中时,按下主页按钮 (Cmd-Shift-h) 后,我得到以下日志:

  • applicationWillResignActive
  • 已停用
  • 将激活
  • 出现了
  • 已停用

第 3 步:我从应用屏幕再次启动我的应用(从复杂功能启动时也是如此)

  • applicationDidBecomeActive
  • 将激活

问题 1: 在第 2 步中,didDeactivate 被调用了 2 次,willActivatedidAppear 也因某种原因被调用。我希望只调用一次didDeactivate。有没有人知道为什么会发生这种情况?

问题 2: 在第 3 步中,在 willActivate 之后,我希望 didAppear 被调用。为什么不调用?

【问题讨论】:

  • 我也一直想知道为什么当我按下表冠将我的应用程序发送到后台时,我的界面控制器中会出现以下顺序:didDeactivate、willActivate、didAppear、didDeactivate、willDisappear。我一直在努力弄清楚为什么它会在进入后台后激活并出现。
  • 请注意,如果应用通过 xcode 在调试模式下运行,应用生命周期会出现偏差。我建议在真实设备上安装应用程序并在不附加任何调试会话的情况下启动它。

标签: watchkit wkinterfacecontroller


【解决方案1】:

我在模拟器和 Apple Watch 上都遇到了相同的行为。我不知道那里有什么问题(错误的文档或 SDK 中的错误),但根据我的经验,尝试解决此类奇怪情况的问题要好得多(并且节省时间),而不是试图找出问题所在SDK。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-04
    • 2020-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多