我怎样才能模拟应用程序在后台死亡?

我试图validation我的应用程序(App1)在它启动另一个应用程序(App2)后被系统closures时的行为正确。 有什么办法来模拟或强制这种行为?

告诉模拟器在App2运行时模拟一个内存警告,在App1被带回到前台之前什么都不做。 从debugging器中杀死App1会模拟相同的应用程序事件序列吗?

编辑:我的应用程序放置在后台,当它启动第二个应用程序来处理文件。 这第二个应用程序然后重新启动我的应用程序,我试图validation我的应用程序正常运行,当系统closures它,而第二个应用程序正在执行。

是的,如果你的应用程序已经在后台。 在后台系统中被杀死的应用程序终止时没有任何警告 – 没有任何应用程序委托方法被调用,也没有进行状态更改 – 当应用程序在后台执行停止debugging程序时,会发生这种情况。 (这假设您已经通过点击模拟器上的主页button或Cmd-Shift-H将您的应用程序置于后台)

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

正如其他答案注释,你可以立即结束你的应用程序强制退出或停止debugging器。 在这种情况下,您的应用程序将不会收到警告

如果您正在testing您的applicationWillTerminate方法,请在.plist中将UIApplicationExitsOnSuspend设置为YES ,然后切换应用程序或按主页button。 确保你把键设置为布尔值,而不是string“YES”。

你应该能够:

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

这为您提供了进入后台的应用程序委托方法等。这是它在iOS 6及以下版本中的工作原理。