ソケット接続を開始する必要があるチャット クライアント Android アプリケーションを作成しています。
現在、接続を開始し、ログイン要求を送信し、応答を解析して切断する AsyncTask があります。
問題は、(ユーザーがアプリケーションを使用している限り) 無期限に、複数のアクティビティにわたって接続を維持する必要があることです。
これまでに思いついた解決策は、ソケット接続を処理し、入力ストリームと出力ストリームの独立したスレッドを (ハンドラーを使用して) 作成するバインドされたサービスを作成することです。
知っておくべきことは2つだけです:
- これは正しい解決策ですか、それともサービスはやり過ぎですか? (将来、アプリがフォアグラウンドにないときに通知を処理する必要があるかもしれないことに注意してください)
- もしそうなら、どのように異なる IO スレッド/タスクを対応するストリームに送信し、IE はソケットから取得したストリームを異なるスレッドに渡しますか?