rotakeAndroidのIntentServiceクラスを利用したサービスのサンプルです。Serviceの起動と停止のサンプル」とほとんど変わらない。前回のWorkerスレッドはMessageQueueを持たない単なるスレッドだったが、今回はMessageQueueと、そのキューを順番に処理するLooperを持つ。3回続けて起動ボタンを押すと3回分のIntentがMessageQueueにキューイングされてWorkerスレッドによって順に処理され、3つのIntentの処理が終わった時点でサービスが終了する。その処理中にサービス停止のIntentを送っても、Workerスレッドは停止しない。したがって、サービスの停止ボタンはほとんど用をなさないのだが、上記動作の確認のために残してあります。MessageQueueの状態(キューにいくつのメッセージが溜まっているかなど)をLooperのメソッドdump()でダンプできるようなのですが、これは別の機会に試すことにして、まずAndoridの全体像を把握するために、次のトピックに進もうと思います。参考:IntentService.javaのソースコードを見ると、MessageQueueとLooperの生成、サービス処理ルーチンonHandleIntent()の呼び出しに関する部分は次のように書かれています。classのサンプルにも書かれているように、サービスのためのクラスの定義と、onHandleIntent(){}にサービスの処理を書くだけでほとんどよい。前回の記事のものと同じAndroidrotakeさんのブログログインしてコメントを。