pg-box.jp
140107訓練 | ハコソフト
AsyncTask Androidの独自機能。 非同期処理を行いたい時に利用する。 抽象クラス ジェネリクス。型を定義する。 AsyncTask Params:非同期で扱いたいオブジェクトの型。 Progress:進捗を管理するための型。 Result:実行結果を受け取るための型。 execute() 別スレッドの処理を起動するメソッド。 可変長引数を渡せる。AsyncTaskのParamsで定義した型の引数。 doInBackground(Params...) 抽象メソッド。必ず実装すること。 別スレッドで処理を行う為のメソッド。 引数はexecuteの可変長引数が渡ってきて配列として処理される。 今回は1秒おきにiをpublishProgressする。 UIスレッドに関連する処理を行うとエラーになる。 実際にsetText()したらエラーになりました・・・・ publishProgress() OnProgressUpdate()を呼び出す処理。 引数はAsyncTaskのProgressで定義した型の可変長引数が渡せる。 onProgressUpdate(Progress...) 進捗状況をUIスレッドで表示できるメソッド。プログレスバーの更新などに使われる。 可変長引数を渡せる。AsyncTaskのParamsで定義した型の引数。基本的にはpublishProgressの可変長引数が渡ってくる。 今回は1秒おきに1から9までカウントアップする整数をUIスレッドに表示させている。 onPostExecute(Result) 別スレッドの処理完了時にUIスレッドに表示させるメソッド。 引数はdoInBackgroundでretuneした戻り値が渡される。 今回はToastで終了と表示させた。 他にも今回は使ってないメソッドでonPreExecute()もある。 これはdoInBackgroundの前に処理されるメソッドで事前準備的なメソッド。 プログレスバー表示処理などを行うことが多いらしい。