- 概要
UIスレッドの良い、正確な使用を実行できるアクションAsyncTaskは、彼がバックグラウンドで時間のかかる(数秒)とすることができ、(スレッドとハンドラの運用操作を介さずに、UIスレッドに結果を返すことができます)。
そのdoInBackgroundを(名前が示すように、あなたがバックグラウンドで操作を実行する方法)メソッド、ほとんどがonPostExcuteを書き換えます使用したときに、少なくとも書き換え(背景が完了した後に、あなたが結果を返すようにしたい、AsyncTaskのサブクラスを作成する必要があります。 UIスレッド)方法。 - 3と4のステップのAsyncTask一般的な定義は、
第一のように定義された一般的なAsyncTaskの三種類理解する
PARAMSを:パラメータ型発行されたタスクをバックグラウンド操作実行されたとき、すなわちdoInBackgroundプロセスパラメータ、例えば:ダウンロードは、背景画像を行った場合文書は、ここIMAGEPATH文字列型です。
進捗状況:タイプ舞台裏操作処理実行スケジュール。
結果:UIスレッドのデータ型に戻ります。その引数onPostExcute方法は、例えば:背景はここに画像のダウンロードタスクであれば、確かにUIスレッドへのビットマップの種類を返します。
もちろん、すべてではないタイプのために使用され、例えば、進捗状況、あなたがこのタイプの設計、void型を直接使用する必要はありませんプログレスバーが表示されない場合。
第二に、4つのステップを理解する:
onPreExcuteを:操作する前に実行するバックグラウンドタスクを行う、例えば、ダイアログのユーザがダウンロードするように指示されたポップアップ表示することができます。ダイアログonPostExcuteプロセスで必要も却下します。
onInBackground:少し。以前に語りました。注:このメソッドは、publishProgressのリリーススケジュールユニットを使用することができ、単位は進行onProgressUpdate段階でリリースされます。
onProgressUpdate:名前が示すように、更新操作のプログレスバーがあります。UIスレッドで表示ユニットの進捗。
onPostExcute:少し。追加:このメソッドのパラメータは、doInBackgroundメソッドが返すの結果です。 - AsyncTask通常の動作条件:
①AsyncTaskクラスは、UIスレッドでロードする必要があります。
②タスクインスタンスは、UIスレッドで作成する必要があります。
前の2を合計するには、UIスレッドでAsyncTaskのサブクラスを作成することで、UIスレッドでインスタンス化する必要があります。
③タスクを実行するためにUIスレッドを()を呼び出しexcute。手動で4つのステップの機能AsyncTaskを起動しないでください。 doInBackgroundメソッド呼び出しpublishProgress、プログレスバーがリアルタイムonProgressUpdateに更新することができるのはなぜ。
のでpublishProgressを呼び出す前に、onProgressUpdateのための任意のメモリ効果doInBackgroundが表示され、その後のpublishProgress onProgressUpdateは、現在進行中の動作には影響しません。以下の画像は、非同期ロード操作を示し
①準備作業は、
「ネットワークの画像にアクセスするには、最初に権限を付与する必要があります。でたManifest.xmlネットワークへのノードAPPオープンアクセスの前に次のステートメントを追加
画像をダウンロードするにはネットワーク要求がHttpClientをクラスに必要ありませんが、もはやアンドロイド6.0の後のHttpClientをサポートされていますが、まだ使用することができ、あなたがAPPのbuild.gradleに次のコードを追加する必要があります」。
Androidの非同期呼び出し
おすすめ
転載: www.cnblogs.com/21-T/p/10940179.html
おすすめ
ランキング