【发布时间】:2011-05-06 18:51:40
【问题描述】:
各位专家,
我测试了当 iPhone 关闭而应用程序处于活动状态时,我的应用程序会发生什么情况。为此,我在 xcode 调试器控制台中记录了应用程序生命周期的回调方法。
结果是:当我按下设备的开/关按钮一段时间后,applicationWillResignActive 被调用。 iPhone 会在屏幕上显示关闭设备的选项。如果我确认关机,iPhone 就会关机。但显然 没有进一步的回调方法,如 applicationDidEnterBackground 或 applicationWillTerminate 被调用。因此,如果我不将其保存在 applicationWillResignActive 中,所有数据都会丢失。尽管iOS Application Programming Guide 说,应该将应用程序的数据保存在applicationDidEnterBackground 和applicationWillTerminate 中。
你怎么看,这两种方法之一是否仍然被调用,只是不再打印在控制台中?
最好的问候
【问题讨论】:
-
有趣的观察。它似乎有可能被控制台调用,然后断开连接,但我敢打赌它甚至不会被调用。我的预感是 iOS 应用程序的处理方式与 OSX 的突然终止类似,因此该进程在没有通知的情况下被终止。但话又说回来,我敢打赌用户很少会关掉他们的设备(如果他们知道怎么做的话)。
-
但如果电池没电,设备也会关闭。在电池没电的情况下,很难测试应用程序的行为。因为如果您将 iPhone 连接到开发 PC 以在控制台中记录回调方法,则需要付费!但我猜该应用的行为类似于手动关闭案例。
-
我在运行 iOS 5.0 的 3GS 上进行了测试...如果确认关闭,将调用 applicationDidEnterBackground 和 applicationWillTerminate!设备在关机前登录到控制台。
标签: iphone ios4 multitasking