AsyncTaskによる非同期実行
AsyncTaskを使うと
バックグラウンドで処理を行い
その結果をメインアクティビティのUIに反映させることができる
AsyncTaskは
Params
Progress
Result
の3つのパラメータを持つ
ちなみに、パラメータの意味は
Params
タスクが開始されるときに送られるパラメータ
doInBackground()の引数
Progress
バックグラウンド処理の進捗状況を示すための
onProgressUpdate()の引数
Result
バックグラウンド処理が終わったときに実行される
onPostExecute()の引数
また、AsyncTaskをexecuteすると
4つのメソッドが実行される
実行されるメソッドは4つ
onPreExecute()
実行前の準備処理
例えばインジケータセットアップ
doInBackground(Params…)
バックグラウンドで実行したい処理
onProgressUpdate(Progress …)
バックグラウンド処理の進捗状況を
UIスレッドで表示するなら記述
onPostExecute(Result)
バックグラウンド処理が終わり
UIスレッドで反映させる処理
AsyncTaskを使うにはルールがあるので注意
このルールは
AsyncTaskのインスタンスはUIスレッドで生成
AsyncTaskの execute()は
UIスレッドから呼び出す
onPreExecute()
onPostExecute()
doInBackground()
onProgressUpdate()
は手動で呼び出せない
AsyncTaskは1回だけ実行できる2回目だと、例外になってしまう