お問い合わせサービス(2) - AsyncTask

私たちは、サブUIスレッドで動作するためには、Androidのは、私たちを助けるためにAsyncTaskを提供します。AsyncTaskの原理は、非同期メッセージ処理機構に基づいています。

AsyncTaskの基本的な使い方

AsyncTaskは抽象クラスであり、我々はそれを継承するサブクラスを作成する必要があります。私たちの3つの汎用パラメータを開発するために、後続の際。
paramsが実行AsyncTaskは、バックグラウンドサービスのために使用することができたときにパラメータを渡す必要があります。

ときに進捗バックグラウンドタスク、あなたは単位の進捗状況として開発するために、ここで一般的なパラメータを使用して、ページ上の現在のタスクの進行状況を表示する必要がある場合。
タスクが完了すると、タスクを返却する必要がある場合は、ここではジェネリック医薬品の使用は、戻り値の型として開発につながります。
次のように最も単純なカスタムAsyncTaskの一つは、書くことができます。

class DownloadTask extends AsyncTask<Void,Integer,Boolean>{
....
}

ここでAsyncTaskを実行するときに、タスクが完了した後、彼らは、整数の単位の進捗状況を表示し、ブール型の戻りをパラメータに合格しなかったと述べました。

私たちは4つありますが、一般的な方法を書き換える必要がある、AsyncTaskのいくつかの方法を書き換える必要があるタスクを完了カスタマイズすることができます。

1、onPreExecute()インターフェースを初期化する動作の数を求めるバックグラウンドタスクの開始前。
子スレッドは、ここで私たちは自然に時間のかかる操作に対処したい。この方法を実行するための2、doInBackground(PARAMS ...)のコードでは、タスクは、Returnステートメントによって返される結果を完了しています。このメソッド内で、我々は動作する必要がある場合は、その後、我々はpublishProgress(プログレス...)によって行うことができる操作UI、UIを実行することはできません。
我々は(PARAMS ...)メソッドが実行publishProgress(進捗状況...)文をdoInBackgroundの内側に、onProgressUpdate(進歩が...)すぐに実行されるとき3の後、onProgressUpdate(プログレス...)、プロセスパラメータは、バックグラウンドタスクから運ばれます渡りました。このメソッド内で、我々は数値パラメータはインターフェイス要素に応じて更新することができ、操作をUIできます。
Returnステートメントを介してバックグラウンドタスクの実行が終了して戻ると、このメソッドが呼び出されると、図4に示すように、onPostExecute(結果)、同じデータがようにタスクの実行または近いプログレスバーとの結果を思い出させるような、いくつかのUI操作を返すために使用することができます。

AsyncTaskの概要

使用AsyncTask、時間のかかる操作で、この場合、doInBackground()メソッドは、onProgressUpdate内部UI操作()メソッドは、内部onPostExecute()メソッドに仕事を終えのタスクを実行します。

AsyncTaskタスク開始

このタスクを開始し、私たちは、次のコードを追加する必要があります。

newDownloadTask().execute();

これらは、彼らがメッセージを処理するハンドラオブジェクトを作成していない、我々は非同期メッセージ処理機構を検討する必要はありませんが、基本的な使い方AsyncTaskあり、ちょうどpublishProgress()メソッドを呼び出して、あなたは、メインスレッドに、子スレッドからの切り替えを達成することができます。

发布了37 篇原创文章 · 获赞 10 · 访问量 1万+

おすすめ

転載: blog.csdn.net/OneLinee/article/details/78569446