2011-07-14 13 views
0

インターネット経由でサーバーと通信できるAndroidアプリを実装したいと考えています。 Androidアプリがサーバーに接続するたびに接続が確立され、Androidアプリはこの接続を維持してサーバーからメッセージを受信します。しかし同時に、Androidアプリはユーザー入力を処理する必要があります。したがって、これらの2つのタスクは同時に実行する必要があり、2つのスレッドで実現する必要があります。私はマルチスレッドプログラミングに関する経験がありません。助言がありますか?ありがとう。レオンAndroid Appとソケット

答えて

0

サーバーの操作をスレッドに入れようとしましたか?これには、本当にあなたがちょうど3.0にし、ソケット接続を開くには、実際には(ネットワーキングを扱うスレッドを1つ設定する必要があり、ユーザーインターフェースは、メインスレッドによって処理されているすべての

Thread thread = new Thread(this){ 
    public void run() { 
     // do your server interaction 
    } 
    } 
    thread.start(); 
+0

私は試みました。しかしそれはうまくいかなかった、スレッドプログラミングとソケットプログラミングを組み合わせるときにいくつかの問題があるかもしれない。私は理解しようとします。ありがとう。 – leonliuxue

2

で問題はないはずメインスレッドから例外がスローされます)。

AsyncTaskを使用してサーバーへの接続をセットアップし、維持します。これは、マルチスレッドを実行するかなり簡単な方法です。このドキュメントをご覧ください:http://developer.android.com/resources/articles/painless-threading.html

+0

ありがとう、私はその文書を見ていきます。 – leonliuxue

0

Googleのクラウドツーデバイスメッセージング(C2DM)を検討することをお勧めします。彼らは、デバイスへの接続を長時間開いたままにしておき、サーバーの通知をどのAndroidデバイスにも送信します。私はまだそれがまだ 'ラボ'の段階にあると信じています。

+0

THanks。私はそのサービスを見ていきます。 – leonliuxue