4

我正在使用 BLE 开发一个 iOS 5 应用程序,该应用程序需要监视与蓝牙设备的连接数小时。我一直在我的 plist 中为 UIBackgroundModes 使用蓝牙中央,只要连接了设备,它就可以很好地保持应用程序运行。当它断开连接时,我尝试重新连接它,一旦设备再次开始广告,它也能正常工作。

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

我一直在尝试查看问题所在,据我了解,当内存级别较低时,如果连接了设备,我的应用程序将无法被终止,但如果什么都没有,它可以(并且将会)被终止已连接。我可以看到我的应用程序在 iPhone 的“LowMemory”日志中被抛弃了。

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

4

2 回答 2

4

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

在后台运行时检查应用程序的内存占用。释放你不需要的东西。这将降低您的应用程序被终止的频率。

于 2012-09-10T14:18:16.913 回答
0

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

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

于 2013-05-15T21:44:03.070 回答