« Windows Live Writer を使ってみた | トップページ | VD Ver.0.94 »

2009.05.25

Android の AsyncTask

Android で Thread から UI を触ると、なぜか2回目で exception 吐くので、調べてみたら、これがでてきた。(reference はこれ。)

なるほど、UI Thread のものを別の Thread から触っちゃダメなのね。

Ver.1.1 で開発中なので、UserTask をコピペして試したのだけど、UserTask を継承した inner class を用意して、doInBackground() の中で別 Thread でやらせたい処理をして、定期的に publishProgress() を呼んでおくと、onProgressUpdate() が UI を更新できるタイミングで呼ばれるみたいで、これの中から UI Thread を触るメソッド(進捗状況とかを表示するメソッド)を呼び出せば大丈夫でした。

Ver.1.5 なら AsyncTask が android.jar に入っていてそのまま使えるね。(UserTask は AsyncTask と全く同じように使えると書かれている)

1度だけしか実行できない(can be executed only once.)みたいなことが書かれているが、複数同時に実行してもシーケンシャルに実行されるだけで特に問題は無いので、そういう意味なのでしょう。

(←フリーソフトを作るモチベーションアップのために、ぜひ。)

|

« Windows Live Writer を使ってみた | トップページ | VD Ver.0.94 »

Android」カテゴリの記事

コメント

この記事へのコメントは終了しました。

トラックバック


この記事へのトラックバック一覧です: Android の AsyncTask:

« Windows Live Writer を使ってみた | トップページ | VD Ver.0.94 »