1

こんにちは、私はボタンを使用しており、そのボタンをクリックすると Web サービスに接続します。しかし、問題は、ボタンを押しても、クリックされたことが示されず、インターネットとWebサービスに接続されることです。接続すると、クリックされたという応答が表示されます。要するに、ボタンの反応が非常に遅いです。そのボタンのリスナーにインターネット接続がある場合。UIスレッドと関係があることは知っています。しかし、友人がこれを案内してください。

本当にありがとう、

4

4 に答える 4

1

MyWebService というクラスを作成し、AsyncTask から拡張する必要があります。オーバーライドされた doInBackground() メソッドで接続操作を実行し、その onPostExecute() メソッドで UI の変更を更新します。

于 2011-05-11T09:40:08.290 に答える
1

次のコードをクラスに入れます。

 // Need handler for callbacks to UI Threads
    // For background operations
    final Handler mHandler = new Handler();

    // Create Runnable for posting results
    final Runnable mUpdateResults = new Runnable() {
        public void run() {
            // Do your task which needs to get done after webservice call is complete.
        }
    };

また、Web サービスを呼び出すには、ボタン イベントで次のコードを使用します。

new Thread() {
            public void run() {             
                // Place the webservice call here.   

                mHandler.post(mUpdateResults);
            }
            }.start();

実際に探しているのはマルチスレッドです。すべての Web サービス呼び出しとネットワーク アクティビティは別のスレッドで実行する必要があります。スレッド start() 呼び出しの後、必要なことを何でも実行でき、遅延なく即座に実行されます (この場合、そのボタンが押されたことを示しています)。

于 2011-05-11T09:42:56.790 に答える