iOS:在等待连接时保持应用程序在后台运行

时间:2012-09-10 13:48:59

标签: ios core-bluetooth bluetooth-lowenergy

我正在开发一个使用BLE的iOS 5应用程序,需要监视与蓝牙设备的连接几个小时。我一直在使用我的plist中的bluetooth-central用于UIBackgroundModes,只要设备连接,它就能很好地保持应用程序的运行。当它断开连接时,我尝试重新连接它,一旦设备再次开始广告,它也会很好用。

问题是,如果它断开连接并且用户开始使用其他应用程序,则不会重新连接。

我一直在努力查看问题是什么,据我所知,当内存水平较低时,如果设备已连接,我的应用程序无法被杀死,但它可以(并且将会)如果没有连接就被杀死。我可以看到我的应用程序在iPhone的“LowMemory”日志中被抛弃了。

我怎样才能确保我的应用程序不被丢弃?

2 个答案:

答案 0 :(得分:4)

你没有。 iOS看门狗准备释放尽可能多的资源,以确保正确执行前台应用程序。由于您的应用程序不再处于前台,iOS将允许该应用程序运行必要的服务,只要它有足够的资源来执行此操作。我在后台运行的位置服务遇到了类似的问题。

在后台运行时检查应用程序的内存占用量。发布你不需要的东西。这会降低您的应用被杀的频率。

答案 1 :(得分:0)

可悲的是,就像Apple不允许您决定什么是必要的服务一样,您可以使用简单的解决方法,在后台激活GPS或静音。

当然,这将是耗费电池的解决方法,您的应用验证可能会被拒绝。