3

だから私はクラスを拡張するこのクラスを持っていThreadます。スレッドを使用して電話をBluetoothデバイスに接続し、接続を維持します。

接続が確立されたら(またはユーザーがGUIを操作したら)、別のアクティビティに渡す必要があります。作成したばかりのスレッドを持ち歩き、操作できるようにします(停止、再起動、ステータスの変更)。

このスレッドを実装Serializable (またはParcelable)して、他のアクティビティを呼び出すインテントに通常のエクストラとして追加する必要がありますか?それは可能/正しい/便利ですか?

答えがそうでない場合は、その理由と、そのようなことを実装するための最も正しい方法を知りたいと思います。

ありがとうございました。

4

1 に答える 1

4

スレッドはアクティビティから独立しています。つまり、スレッドがそこで作成されているか、その内部クラスであるかに関係なく(スレッドが最初のアクティビティを参照し続ける場合は、そこでメモリがリークしている可能性があります)。スレッドをアクティビティから完全に独立させたい場合は、単にその機能を分離することを検討する必要があります。Application1つの方法は、すべてのコードを拡張してそこに移動することです。そうすれば、アプリケーションオブジェクトが存在する限り、それを介してスレッドに簡単にアクセスできます。CommonsWareが思い出したように、他のオプションは、通常の方法を使用して、ServiceこのBluetooth通信ジョブをそれに委任することです。どちらを選択しても、あちこちでスレッドを渡そうとするよりもはるかに簡単で優れています。

于 2012-09-11T16:53:27.547 に答える