gpt4 book ai didi

ios - Watchkit 应用程序的退出由 Watchkit 操作系统本身处理,我不需要清除或重置屏幕?

转载 作者:行者123 更新时间:2023-11-29 12:24:33 28 4
gpt4 key购买 nike

好吧,这是非常基本的,但我已经一遍又一遍地阅读了文档,并想确保我做对了。用通俗易懂的语言来说,我的 watchkit 应用程序将因退出我的代码外部应用程序的某些用户交互而关闭,对吗?我不需要使用任何类型的关闭程序来清除或重置屏幕来设置它以进行另一次运行吗?我不需要构建“退出”或“关闭应用程序”例程,对吧?这令人困惑,因为文档暗示该应用程序一旦不再显示在屏幕上(大概是通过用户操作,例如滑动到另一个应用程序)就会停用,并且这将调用 didDeactivate 函数。但文档还声称:

In iOS Simulator, WatchKit calls the didDeactivate method for the current interface controller when you lock the simulator by selecting Hardware > Lock. When you subsequently unlock the simulator, WatchKit calls that interface controller’s willActivate method again. You can use this capability to debug your activation and deactivation code.

但模拟器似乎没有以任何方式取消分配内存或重置变量或重置我的应用程序。它以锁定时的状态在屏幕上保持不变,并在我解锁时恢复为该状态。让我担心的是,如果我弄错了,我有一个为一次运行而构建的应用程序。但我没有看到关机例程、屏幕清除例程或您在常规关机例程中期望的任何元素。

最佳答案

我同意文档可能会令人困惑。考虑它的最简单方法是,只要显示/激活界面 Controller ,就会调用 willActivate。同样,只要隐藏/停用,就会调用 didDeactivate。因此,如果您翻阅 Controller 的页面,每个 Controller 在出现时都会收到一个 willActivate,在它消失时会收到一个 didDeactivate。类似地,如果 Controller 因为应用程序不再可见(例如它已暂停)而被停用,则会调用 didDeactivate。如果用户随后抬起手腕以恢复应用程序,则会调用 willActivate,因为正在显示界面 Controller 。

对于您的 WatchKit 应用程序是否会暂停或终止(取决于操作系统),我们无法保证,因此您必须考虑这两种可能性。根据经验,我知道放下 ARM 会在暂停应用程序之前调用 didDeactivate。如果您随后抬起手腕,应用程序将恢复并调用 willActivate。在我的测试中,应用程序在这种情况下只是暂停(未终止)。

您是正确的,没有在应用程序终止时调用的内置方法。然而,iOS 8.2 添加了四个可用于监控应用程序/扩展程序状态的通知:

  • NSExtensionHostDidBecomeActiveNotification
  • NSExtensionHostDidEnterBackgroundNotification
  • NSExtensionHostWillEnterForegroundNotification
  • NSExtensionHostWillResignActiveNotification

关于ios - Watchkit 应用程序的退出由 Watchkit 操作系统本身处理,我不需要清除或重置屏幕?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29635072/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com