0

プロジェクトで Core Bluetooth を使用しています。バックグラウンド モード機能を利用するために、セッション バックグラウンドを含めました。ペリフェラル切断のデリゲートを観察しましたが、

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

バックグラウンドモードで呼び出されます。ただし、このメソッドで記述したコードは、NSLogs を除いて実行されません。ここで実行できるコードの種類を誰かが正確に説明できますか?

私の目的は、この切断通知をサーバーに送信することです。

4

1 に答える 1

0

わかりました、それは私の最後にいくつかの問題だったようです。ドキュメントによると、Bluetooth 関連のデリゲート呼び出しを取得すると、アプリは約 10 秒間 (バックグラウンドで) 起動されます。

この時間を使用して、ビューの更新以外のタスクを実行したり、 を使用して追加の時間を要求することもできますbeginBackgroundTaskWithExpirationHandler

私のコードは次のようになります。

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

バックグラウンドモードで動作します。これは、電話機がロック状態の場合にも機能します。

于 2013-01-11T11:24:18.710 に答える