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

iOS:在等待连接时在后台保持应用程序活动,ios,core-bluetooth,bluetooth-lowenergy,Ios,Core Bluetooth,Bluetooth Lowenergy,我正在使用BLE开发一个iOS5应用程序,它需要监控与蓝牙设备的连接数小时。我在plist for UIBackgroundModes中使用了bluetooth central,在设备连接期间保持应用程序运行非常有效。当它断开连接时,我会尝试重新连接,一旦设备再次开始广告,它也能正常工作 问题是,如果它断开连接,用户开始使用其他应用程序,它将无法重新连接 我一直在试图找出问题所在,据我所知,当内存水平较低时,如果连接了设备,我的应用程序就无法关闭,但如果没有连接任何设备,它可以(也将)关闭。我可

我正在使用BLE开发一个iOS5应用程序,它需要监控与蓝牙设备的连接数小时。我在plist for UIBackgroundModes中使用了bluetooth central,在设备连接期间保持应用程序运行非常有效。当它断开连接时,我会尝试重新连接,一旦设备再次开始广告,它也能正常工作

问题是,如果它断开连接,用户开始使用其他应用程序,它将无法重新连接

我一直在试图找出问题所在,据我所知,当内存水平较低时,如果连接了设备,我的应用程序就无法关闭,但如果没有连接任何设备,它可以(也将)关闭。我可以看到我的应用程序在iPhone的“低内存”日志中被丢弃


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

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


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

遗憾的是,就像苹果不让你决定什么是必要的服务一样,你可以使用一个简单的解决方法,也可以在后台激活GPS或静音


当然,这将是一个耗电的解决方案,您的应用程序验证可能会被拒绝。

我也遇到了一个类似的问题,我试图通过BLE传输文件。当应用程序处于后台时,传输可以正常工作2分钟,然后突然停止。我无法调试实际发生的情况。有人能建议我在这里做什么,以及如何在后台继续我的过程吗?