2016-04-19 15 views
2

バックグラウンドでBluetoothソケット通信を処理するには、適切なツールは何ですか?スレッド、サービス、IntentService、AsyncTaskまたは別の?バックグラウンドでのBluetooth通信スレッド、サービス、IntentService、AsyncTask ..?

コードはメインクラスとは異なるクラスにあります。接続が失われると、コードは停止し、ソケットとストリームは終了します。この便利な記事によると

http://www.onsandroid.com/2011/12/difference-between-android.html

スレッドが最善かもしれませんが、もしそうなら、どのように私は別のクラスファイルでそれを実装し、まだメインクラスからそれを呼び出すのですか?

答えて

3

私は、あなたがサービスを使用する必要がありますすべての時間を有効にするには、ブルートゥーススキャンを維持したい場合は、それは完全に例

のために、あなたのニーズに依存だと思うソケット通信を行うためのデバイスを検索するために、バックグラウンドにとどまることになりますと。さらに、サービス中の別のインテントサービスを使用して、ファイル、通信などのさまざまなタスクを処理することもできます。ただし、インテントサービスは通常、長時間実行されるプロセスです。これは良いモデルです。

AsyncTaskは、通常、HTTP要求などのネットワーク指向のタスクを処理するためのものです。

さらに、メッセージ通信を提供するスレッドの代わりにハンドラを使用することも考えられます。

+0

アプリケーションは、最初はデバイスのみをスキャンします。ユーザがデバイスを選択すると、通信が開かれ、スキャンが停止されます。私はテキスト(文字)だけを送るだろう。現在、IntentServiceを使用していますが、OnHandleIntent内部のwhileループは、接続されたデバイスから新しいデータを受信して​​います。しかし、フラグを使用するか、.isConnectedをチェックするかどうかにかかわらず、whileループを解除することはできません。 – Fideon

関連する問題