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

Gre*_*reg 36 ios ios-simulator

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

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

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

Aar*_*ger 23

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

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

  • 这是一个*非常*有用的答案。谢谢! (2认同)

Ben*_*tto 11

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

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


小智 10

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

  1. 在设备上运行该应用程序
  2. 按主页按钮一次可转到主屏幕
  3. 按住电源按钮5秒钟,直至看到电源关闭滑块
  4. 按住主屏幕按钮5秒钟

如果您从Xcode运行该应用程序,您应该看到 Message from debugger: Terminated due to signal 9

  • 如何在 iPhone X 上执行此操作? (2认同)

lna*_*ger 7

你应该能够:

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

这为您提供了进入后台的app委托方法等.这是它在iOS 6及更低版本中的工作方式.