2

私はSocket自分のアプリサーバーとの通信に使用するAndroidアプリに取り組んでいます(Javaでも使用されていますServerSocket)。

クライアントソケット用に作成していたコンソールプログラムでは、特定のメッセージが届くまで、サーバーからのすべてのメッセージ(一連の、およびソケットのオブジェクトストリームとの間)を実行および処理するループがwriteObject()ありreadObject()ました(例; bye)ループを終了します。

コンソールプログラムにはフリーズの問題がないため、そこでは問題なく機能しました。しかし、私のアプリには、サーバーからのメッセージに基づいてUIを更新するアクティビティがあります。これは、同じアプローチに従うと明らかにフリーズします。

したがって、ゲームUIを停止することなく、サーバーから受信したメッセージの処理を継続するこのような無限ループを処理するための理想的なアプローチは何でしょうか。

PS:関係がないことはわかっていますが、Androidアプリとサーバーの間でJSON形式でデータを交換しています。また、提案を説明する例をいただければ幸いです。

ありがとう。

4

2 に答える 2

0

の使用をAsyncTaskお勧めします。AsyncTaskこのようなタイプのサーバーとのやり取りを行うために主に使用されます。またService、サーバーとの継続的な対話を行うために使用することもできます。

関連リンク:

AsyncTask の場合 - http://developer.android.com/reference/android/os/AsyncTask.html

サービスの場合 - http://developer.android.com/reference/android/app/Service.html#LocalServiceSample

于 2012-06-26T17:49:10.353 に答える
0

ネットワークとデータ処理のためだけに、独自のスレッドでServiceを使用することをお勧めします。

次に、このサービスをメイン アプリケーションにバインドし、受信メッセージを送受信できます。これは、このテーマに関する非常に優れたチュートリアルです: Service Tutorial

于 2012-06-26T17:58:00.943 に答える