在iOS 7.1中强制退出后,core BLE是否在后台运行?还是只是iBeacon?

在iOS 7.1中强制退出后,core BLE是否在后台运行?还是只是iBeacon?,ios,bluetooth-lowenergy,core-bluetooth,ibeacon,ios7.1,Ios,Bluetooth Lowenergy,Core Bluetooth,Ibeacon,Ios7.1,有人知道在iOS 7.1中用户强制退出应用程序后,core BLE是否会继续在后台运行吗?还是只是iBeacon继续运行?我知道他们都不会继续在force quit上广播,但都会继续扫描吗 编辑:我已经尝试测试我的当前实现,但是在强制退出后它似乎没有在后台运行。到目前为止,我从其他渠道听到的消息是,它确实运行了,但似乎没有为我运行标准的CoreBooth实现。是的,它继续运行。这是iOS 7.1的一个变化 请参阅此处评论中我的详细答案和测试程序:对于CoreBluetooth(CBCentral

有人知道在iOS 7.1中用户强制退出应用程序后,core BLE是否会继续在后台运行吗?还是只是iBeacon继续运行?我知道他们都不会继续在force quit上广播,但都会继续扫描吗


编辑:我已经尝试测试我的当前实现,但是在强制退出后它似乎没有在后台运行。到目前为止,我从其他渠道听到的消息是,它确实运行了,但似乎没有为我运行标准的CoreBooth实现。

是的,它继续运行。这是iOS 7.1的一个变化

请参阅此处评论中我的详细答案和测试程序:

对于CoreBluetooth(CBCentralManager和CBPeripheralManager),以下规则适用:

  • 如果用户使用应用程序切换器手动关闭应用程序,则应用程序的可删除部分也会被删除
  • 如果用户未手动关闭应用程序,则在应用程序处于后台时,您可以使用
    蓝牙中心
    蓝牙外围设备
    后台模式获取相关回调。然而,iOS可能仍然会在内存压力下或出于任何原因杀死你的应用程序,在这种情况下,可恢复部分也会消失
  • 要使可编程部分保持活动状态,可以在实例化CBCentralManager和CBPeripheralManager时使用。具有还原标识符的管理器即使在iOS终止您的应用程序后仍保持活动状态,如果发生有趣的事件,您的应用程序将被启动到后台,并且当应用程序因还原而终止时,您将被传递到管理器的状态。
    • 主队列在后台执行期间挂起-确保以不在主队列上调度事件的方式配置管理器
    • 如果用户使用应用程序切换器手动关闭应用程序,则恢复将被没收,并且应用程序的可恢复部分将无法保持活动状态
    • 要测试恢复,您需要决定使用以下工具:。请注意,Xcode调试器可能会使您的应用保持活动状态,因此请确保首先断开调试器(这将终止应用),然后启动应用,然后打开BackgroundKill并在Xcode Organizer窗口中检查控制台输出

我知道iBeacon已更改的可能副本-我想知道此更改是否也会影响核心BLE。我的实现不使用iBeacon。它只是使用核心BLE,这绝对不是一个重复的、非常合理的问题。只是如果SO表现出一些尝试的努力会更好。我看到了这个答案,但这是否包括核心BLE?还是只是iBeacons?我知道iBeacons将继续扫描,但我的实现只是使用核心BLE,而不是iBeacon。好的,为了澄清,您想知道在iOS 7.1中应用程序被杀死后,核心蓝牙API是否会在后台唤醒应用程序。我还没有测试过这个。答案可能特定于您使用的核心蓝牙API。你有没有一个代码片段可以和大家分享,并提供一些细节?是的,这就是我要问的。我们使用CoreBluetooth API(外围设备和中心设备)查找您周围的其他用户,因此7.1基本上不会改变CoreBluetooth在后台运行的任何内容?只有iBeacon在用户通过切换器退出应用程序后才能工作?@etan:你是说主队列在后台模式下暂停。你能详细说明一下你是如何检索到这些信息的吗?我在后台模式下从后台队列调度到主队列,以避免应用程序前台时出现线程同步问题,即核心数据访问从我的蓝牙队列调度到主队列。在我的实验中,主循环在后台模式下启动的应用程序中运行。你能详细谈谈你的经历吗?