TCP 経由でサーバーと通信する Android アプリを構築しています。実装についていくつかのアイデアがありますが、どの方法が最適かわかりません。私はこれが初めてで、新しいことを学ぶにつれてデザインが常に進化しているため、目標を達成するためのソリューションを最適に実装する方法についてアドバイスを求めています。
目標: 次のことができるようになります。
- サーバーにデータを送信する
サーバーにデータを送信し、サーバーの応答を読み取ります。
- 私が送信する情報には、サーバー情報を提供するためのものと、サーバーから情報を要求するためのものがあります。
可能な実装:
- Thread Run() メソッドは、送信キューに送信するものがあるかどうかを確認し (送信している場合は送信する)、再度読み取るものがあるかどうかを確認することで常にループします。
- これはバッテリーを消耗させたり、CPUを燃やしたりしますか?
- 送受信するたびに新しいスレッドを作成し、「送信」または「送信+受信」を実行したらスレッドを終了させます
- スレッドの相互作用を 1 つのソケットと同期するにはどうすればよいですか? このスレッドが終了するまで、次のスレッドの作成をブロックしますか?
- スレッドを作成し、書き込みまたは書き込み + 読み取りが必要になるたびに、そのスレッドで送信または送信 + 受信メソッドを呼び出します
- バッテリー/CPUを燃やさずにスレッドを存続させるにはどうすればよいですか?
- キューを使用してデータ送信のリクエストを処理する必要がありますか?また、現在の読み取り/書き込みが完了するまでキューからの読み取りを同期する必要がありますか?
潜在的な問題に関する追加のポインタ、リンク、または警告をいただければ幸いです。私はこれを始めたばかりなので、サンプルコードは特に感謝しています。ありがとうございました。