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.)みたいなことが書かれているが、複数同時に実行してもシーケンシャルに実行されるだけで特に問題は無いので、そういう意味なのでしょう。
| 固定リンク
「Android」カテゴリの記事
- Essential Phone PH-1 のバッテリー交換(2021.12.11)
- sysbench をとってみた(2016.07.02)
- ListView の Height は WRAP_CONTENT を避けるべき(2015.12.23)
- Nexus 6 Android 6.0.1 (MMB29K) root化(2015.12.18)
- Nexus 6 Android 6.0.1 (MMB29K)(2015.12.17)
この記事へのコメントは終了しました。
コメント