ボタンのonClickイベント等で時間のかかる処理を行って、他のユーザーインターフェイス(以下UI)コンポーネントの処理が止まってしまったことはないだろうか。AndroidのUIはシングルスレッドで処理されるため、あるUIコンポーネントの処理が終わらないうちは次のUIコンポーネントの処理を行うことができないからだ。 ワーカースレッドの生成 Androidでは、UIを司るスレッドをメインスレッドあるいはUIスレッドと呼び、これをブロックさせてはならない。もし、ボタンのイベント等で時間のかかる処理を行いたい場合、ワーカースレッドを生成する等してメインスレッドをブロックしないようにすることが重要である。 button1 = (Button)findViewById(R.id.button1); button1.setOnClickListener(new View.OnClickListener