0

我在我的项目中使用核心蓝牙。我已经包含了 Session Backgrounding 以利用其后台模式功能。我观察到外围设备断开的代表,

- (void)centralManager:(CBCentralManager *)central didDisconnectPeripheral:(CBPeripheral *)peripheral error:(NSError *)error;

在后台模式下被调用。但是,我在此方法中编写的任何代码都不会执行,除了 NSLogs。有人能准确解释一下这里可以执行什么样的代码吗?

我的目标是将此断开连接通知发送到我的服务器。

4

1 回答 1

0

好吧,这似乎是我最后的一些问题。根据文档,当您的应用程序收到与蓝牙相关的委托调用时,它会被唤醒(在后台)大约 10 秒。

您可以利用这段时间来执行任何非视图更新任务,甚至使用beginBackgroundTaskWithExpirationHandler.

我的代码看起来像这样。

if ([UIApplication sharedApplication].applicationState == UIApplicationStateBackground) {
    [self sendEmailInBackground:peripheral]; //Code to send a server request
    return;
}

并且它在后台模式下工作。这在手机处于锁定状态时也有效。

于 2013-01-11T11:24:18.710 回答