Apple の EADemo をベースとして使用して、EAAccessories に対するバックグラウンド処理の影響を理解しようとしています。
connectNotification を受信すると、アクセサリを取得し、プロトコルを確認してストリームを取得します。ストリームを使用してデリゲートを設定し、RunLoop でスケジュールを設定して、開く
現在、バックグラウンドに入ると、これをすべて破棄します。行ったことをすべて取り消し、すべてのオブジェクトを解放します。
私はまた、didDisconnect でこの分解を行います。
入力時に常に didConnect を取得できるとは限らないため、connectedAccessory リストを調べて、適切なデバイスを確認します。
-=-=-=-
EA デモは、ビューでセッションをセットアップおよび破棄するため、バックグラウンドの永続性があるかどうかはわかりません。
EA デモ コードは、デバイス自体が切断されていない限り、分解して元に戻すことができることを示唆しているようです。
ただし、セッションとデバイスは、iOS デバイスがスリープ状態になるか、アプリをバックグラウンドにすると、デバイスがデータの確認を停止するか、さらに悪いことに、ストリームがいっぱいになるまでデータをストリームから引き出すのを停止する状態になることがあります。上。
質問: バックグラウンドを使用する場合、実際に didDisconnect 通知を受信しない限り、アクティブなセッション/アクセサリを破棄すべきではありません。これで、セッションとアクセサリの構造 (およびおそらくストリーム) がバックグラウンドで生き残ると思いますか?