androidでのUIとHandlerについて

2011年1月10日

SurfaceViewなどで、スレッドを作って、処理ついでにUIの項目(TextViewなど)を更新しようとしたときに、普通にやると

CalledFromWrongThreadException

というエラーが出てしまう。

AndroidアプリのUIはシングル・スレッド モデルで、スレッドからUIを操作しようとすると例外が発生してしまうのです。

悪い例

この問題を回避する方法としてHandlerを使用して、UIにアクセスする方法があります。

Handlerインスタンスを生成し、postメソッドで実行する処理を与えてやることで

UIスレッドでHandlerに蓄積された処理を実行することが出来ます。

アンケート