奇怪的WatchKit WKInterfaceController和WKExtensionDelegate生命周期调用

Dus*_*czh 5 watchkit wkinterfacecontroller

我在WKExtensionDelegate和WKInterfaceController上都添加了日志。这是我在Watch OS Simulator中启动和退出应用程序时得到的信息。(模拟器正在运行watchOS 4.2)

第1步:在首次启动该应用程序时,以下是我看到的日志:

  • 初始化扩展代理
  • applicationDidFinishLaunching
  • applicationDidBecomeActive
  • 用上下文唤醒
  • willActivate
  • didAppear

第2步:在我处于应用程序状态时,按下主屏幕按钮(Cmd-Shift-h)后,我会得到以下日志:

  • applicationWillResignActive
  • didDeactivate
  • willActivate
  • didAppear
  • didDeactivate

步骤3:我从应用程序屏幕再次启动我的应用程序(从复杂的应用程序启动时也是如此)

  • applicationDidBecomeActive
  • willActivate

问题1:在步骤2中,也didDeactivate被调用2次,willActivate并且didAppear由于某种原因被调用。我希望didDeactivate被称为一次。有人知道为什么会这样吗?

问题2:在第3步中,willActivate我期望didAppear会被致电。为什么不叫?

pla*_*a__ -1

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