以编程方式强制暂停iOS 7应用程序?

10

我试图以编程方式强制我的应用程序自动进入"Suspended"状态,以便我可以在核心蓝牙恢复测试中进行测试。我尝试了调用

[[UIApplication sharedApplication] performSelector:@selector(suspend)];

但这只是将其发送到后台。我做错了吗?有更好的方法吗?还是不可能的?

我想提醒大家关于暂停应用程序意味着什么,因为术语常常会引起混淆: iPhone应用程序状态图表的链接
(来源:apple.com)

如果系统需要内存,处于后台运行的应用程序将永久暂停,但Core Bluetooth的恢复可以将应用程序临时发送回后台状态。


这可能会有所帮助:自动化UI测试请参见底部的多任务测试。它不是从应用程序代码本身完成的,而是从仪器脚本完成的。但它只是用于模拟按下主页按钮。 - Rok Jarc
1
我没有测试过这个 - 可能会有效:https://dev59.com/hm435IYBdhLWcg3wigkk#13525245 - Rok Jarc
1
UIApplication *app = [UIApplication sharedApplication]; [app performSelector:@selector(suspend)];UIApplication *app = [UIApplication sharedApplication]; [app performSelector:@selector(suspend)]; - SleepNot
你找到了以编程方式完成它的方法吗?(而不需要打开虚拟的500MB应用程序?) - Vladimir Kofman
1个回答

6

我不知道如何通过编程完成这个操作,但我的方法是按下主页按钮,然后启动一些重量级应用程序,如Safari和图形密集型游戏。内存压力会导致系统快速终止您的应用程序。然后Core Bluetooth应该启动恢复过程并在检测到与您连接/请求连接的外围设备的活动时重新启动您的应用程序。


3
哈哈,这是个好主意。如果没有编程上的解决办法,也许我会制作一个有意使用尽可能多内存的应用程序。 - Jegus
1
我制作了一个漂亮的 500 MB 应用,但仍然非常不可靠。在打开了手机上拥有的每个应用程序,包括那个 500 MB 的应用程序之后,我只成功让我试图测试的应用程序挂起了一次。 - Jegus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接