« 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」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/20208/45120589

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

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