2011年2月10日木曜日

Android の スレッドは難しい

 どうも、情報が錯綜していて、よくわらん。onDestroy は ANDROID HACKS によると呼ばれない事がある。と書かれているが、isFinishing で強制終了なのか、ユーザによる終了なのかが判断できるという情報もある。であれば、スレッドで十分なのではないか?とも、思ったが、Activity がシングルスレッドで動作しているので、onStop が呼ばれた後は、イベントが処理されないくさい。では、サービスではどうか?というと、メッセージループが存在しないので、そのままでは、やはりイベントが処理されない(というか、スルーされる)。
 で、どうやら、ウィンドウズで言うところのメッセージループに該当するものが、Looper というものらしく、こいつを自前でハンドラを処理できるようにゴリゴリ書いて用意してやって、そのLooperをスレッドに食わせてやるというのが、王道のような気がする。ハンドラの例が、いろいろと見つかるが、どいつも、糞みたいに複雑で訳がわからん。みんな、よくこんなコード書く気になるなーと感心する。Javaプログラマー恐るべし…。
 なんか、デスマーチに突入してきた気がするぞ

0 件のコメント: