HandlerThread

適当にループまわして適当にディスパッチされたタスクを適当に処理したい、みたいな時は HandlerThread クラスを使いましょう。

そんなに難しいクラスではなくて、基本的には、

@Override
public void run() {
  Looper.prepare();
  Looper.loop();
}

みたいなものだと思えばよいです。簡単ですね。勿論これだと何もできないので、実際には Handler でタスク投げられるように Looper 取り出せたりするわけですが、まあ些細なことです。

何でこんなことを書くかというと、知らずに再生産してしまうという悲劇を少しでも防ぐことができたら、という想いからです…Looper や Handler 使ってればまだマシですが java.util.concurrent とかで書き始めた日には目も当てられませんね…タダでさえ冗長な java で車輪なんて書いていたら指がおかしくなります!

おかしくなります!