2010-11-24 7 views
4

私は、Bluetooth通信を伴うアプリケーションを開発しています。接続を設定するアクティビティが終了しても、Bluetooth通信は続行する必要があります。まず、私はこのためにServiceを使用することを考えており、それは正しい方法であると思われました。しかし、Bluetoothのチャットの例では、通信はサービスではなく別のスレッドで行われます。私は自分のアプリでそのコードを使用し、正しく動作しています。 Bluetooth通信用スレッドを使用しているか、サービスのみを使用する必要がありますか?私のアプリがRAMに入るまで、ブルートゥース通信はアクティブでなければならず、アクティビティ間を切り替えると問題はありません。AndroidでのスレッドまたはサービスでのBluetooth通信?

+0

サービスではなくスレッドでブルートゥース通信を行うのが適切かどうかを誰かに教えてもらえますか?スレッドとその作業を試してみましたが、後でコードを変更する必要がないようにしたいと思います。 – sunil

答えて

0

これは、Androidのアクティビティのライフサイクルに沿っている点を除いて、別のスレッドと異なる場合がありますが、スレッドが強制終了され、状態が回復できないということです。 Androidが殺されると、Androidはサービスを再起動しようとします。

0

ご質問にお答えするには時間がかかりすぎますが、決して遅くはないと思います。 私は2つのデバイス間でブルートゥース通信を持つアプリケーションを開発しました。私は自分の経験を要約したいと思います。 サービスは非常に重くないバックグラウンドプロセスを実行したいときに通常使用するサービスです(巨大であれば)メインのUIスレッドをブロックし、OSやANRが遅くなる可能性があります。私たちが望んでいないものです。

ブルートゥースコミュニケーションはこれまで実行されていたプロセスで、スレッドを使用して実行する必要があります。これは、別のスレッドとして動作し、メインUIスレッドには影響しません。 私が間違っている場合は私を修正してください。

関連する問題