こんにちは、私はボタンを使用しており、そのボタンをクリックすると Web サービスに接続します。しかし、問題は、ボタンを押しても、クリックされたことが示されず、インターネットとWebサービスに接続されることです。接続すると、クリックされたという応答が表示されます。要するに、ボタンの反応が非常に遅いです。そのボタンのリスナーにインターネット接続がある場合。UIスレッドと関係があることは知っています。しかし、友人がこれを案内してください。
本当にありがとう、
MyWebService というクラスを作成し、AsyncTask から拡張する必要があります。オーバーライドされた doInBackground() メソッドで接続操作を実行し、その onPostExecute() メソッドで UI の変更を更新します。
次のコードをクラスに入れます。
// 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() 呼び出しの後、必要なことを何でも実行でき、遅延なく即座に実行されます (この場合、そのボタンが押されたことを示しています)。