我正在尝试验证我的应用(App1)在启动另一个应用(App2)后被系统关闭时的行为是否正常。有没有办法模拟或强制这种行为?
在App2运行时,告诉模拟器模拟内存警告,在App1返回前台之前不会做任何事情。从调试器中杀死App1会模拟相同的应用程序事件序列吗?
编辑:我的应用程序在启动第二个应用程序来处理文件时被置于后台。第二个应用程序然后重新启动我的应用程序,我正在尝试验证我的应用程序在第二个应用程序执行时关闭系统时表现正常。
答案 0 :(得分:21)
正如其他答案所述,您可以通过强行退出或停止调试器立即结束您的应用。在这种情况下,您的应用将不会收到任何警告。
如果您要测试applicationWillTerminate
方法,请在.plist中将UIApplicationExitsOnSuspend
设置为YES
,然后切换应用或按主页按钮。确保将键设置为布尔值,而不是字符串“YES”。
答案 1 :(得分:10)
是的,如果您的应用已经在后台。在后台被系统杀死的应用程序终止时没有任何警告 - 没有调用应用程序委托方法,也没有进行状态更改 - 这正是当应用程序在后台执行调试器停止时发生的情况。 (这预示着您已经通过单击模拟器或Cmd-Shift-H上的主页按钮将您的应用程序置于后台)
(正如@Inafziger所说,你也可以通过使用模拟器的界面强制退出正在运行的应用程序来获得相同的效果。)
答案 2 :(得分:8)
我知道这已经有几年了,但是如果其他人现在正在研究这个问题,我想分享一下。请尝试以下步骤:
如果您是从Xcode运行应用程序,则应该看到Message from debugger: Terminated due to signal 9
答案 3 :(得分:7)
你应该能够:
-
将其从内存中删除这为您提供了进入后台的app委托方法等。这就是在iOS 6及以下版本中的工作方式。