如何模拟在后台被杀的应用?

时间:2013-02-19 23:13:56

标签: ios ios-simulator

我正在尝试验证我的应用(App1)在启动另一个应用(App2)后被系统关闭时的行为是否正常。有没有办法模拟或强制这种行为?

在App2运行时,告诉模拟器模拟内存警告,在App1返回前台之前不会做任何事情。从调试器中杀死App1会模拟相同的应用程序事件序列吗?

编辑:我的应用程序在启动第二个应用程序来处理文件时被置于后台。第二个应用程序然后重新启动我的应用程序,我正在尝试验证我的应用程序在第二个应用程序执行时关闭系统时表现正常。

4 个答案:

答案 0 :(得分:21)

正如其他答案所述,您可以通过强行退出或停止调试器立即结束您的应用。在这种情况下,您的应用将不会收到任何警告。

如果您要测试applicationWillTerminate方法,请在.plist中将UIApplicationExitsOnSuspend设置为YES,然后切换应用或按主页按钮。确保将键设置为布尔值,而不是字符串“YES”。

答案 1 :(得分:10)

是的,如果您的应用已经在后台。在后台被系统杀死的应用程序终止时没有任何警告 - 没有调用应用程序委托方法,也没有进行状态更改 - 这正是当应用程序在后台执行调试器停止时发生的情况。 (这预示着您已经通过单击模拟器或Cmd-Shift-H上的主页按钮将您的应用程序置于后台)

(正如@Inafziger所说,你也可以通过使用模拟器的界面强制退出正在运行的应用程序来获得相同的效果。)

答案 2 :(得分:8)

我知道这已经有几年了,但是如果其他人现在正在研究这个问题,我想分享一下。请尝试以下步骤:

  1. 在设备上运行应用
  2. 按主页按钮一次可转到主屏幕
  3. 按住电源按钮5秒钟直至看到电源关闭滑块
  4. 按住主屏幕按钮5秒钟
  5. 如果您是从Xcode运行应用程序,则应该看到Message from debugger: Terminated due to signal 9

答案 3 :(得分:7)

你应该能够:

  • 点按主屏幕按钮,转到主屏幕
  • 点击主屏幕按钮两次(使用模拟器中的键盘快捷键)
  • 触摸并按住底部的图标,直到它开始摆动
  • 点击短划线圈-将其从内存中删除

这为您提供了进入后台的app委托方法等。这就是在iOS 6及以下版本中的工作方式。