140107訓練

投稿者: | 2014年1月7日

AsyncTask

Androidの独自機能。
非同期処理を行いたい時に利用する。
抽象クラス

ジェネリクス。型を定義する。

AsyncTask<Params, Progress, Result>

Params:非同期で扱いたいオブジェクトの型。
Progress:進捗を管理するための型。
Result:実行結果を受け取るための型。

execute()

別スレッドの処理を起動するメソッド。
可変長引数を渡せる。AsyncTask<Params, Progress, Result>のParamsで定義した型の引数。

doInBackground(Params…)

抽象メソッド。必ず実装すること。
別スレッドで処理を行う為のメソッド。
引数はexecuteの可変長引数が渡ってきて配列として処理される。
今回は1秒おきにiをpublishProgressする。
UIスレッドに関連する処理を行うとエラーになる。
実際にsetText()したらエラーになりました・・・・

publishProgress()

OnProgressUpdate()を呼び出す処理。
引数はAsyncTask<Params, Progress, Result>のProgressで定義した型の可変長引数が渡せる。

onProgressUpdate(Progress…)

進捗状況をUIスレッドで表示できるメソッド。プログレスバーの更新などに使われる。
可変長引数を渡せる。AsyncTask<Params, Progress, Result>のParamsで定義した型の引数。基本的にはpublishProgressの可変長引数が渡ってくる。
今回は1秒おきに1から9までカウントアップする整数をUIスレッドに表示させている。

onPostExecute(Result)

別スレッドの処理完了時にUIスレッドに表示させるメソッド。
引数はdoInBackgroundでretuneした戻り値が渡される。
今回はToastで終了と表示させた。

他にも今回は使ってないメソッドでonPreExecute()もある。
これはdoInBackgroundの前に処理されるメソッドで事前準備的なメソッド。
プログレスバー表示処理などを行うことが多いらしい。

昨日雑だったからちょっと取り戻せたかなと思うけど・・・・
調べるの夢中で課題を聞き漏らすことがしばしば起こるように・・・・
気をつけなければ・・・・

後メソッドを指定時間遅延実行させるPostDelayedメソッドもやったけど明日まとめよう。
気力・・・・ぐふ。

今日のひとこと

extendsくらい書けるようにならなきゃダメだよ


コメント

Loading Facebook Comments ...

コメントを残す

No Trackbacks.