「単純なサービス」 では長時間かかる処理は別スレッドで実行する必要があると言いました。 ここでは、繰り返し処理を行う状況で Timer を利用する方法を紹介します。 頻度の高い繰り返し処理は Timer が便利 startService を呼んでサービスを開始するとき、サービス側では onCreate、onStartCommand が順に呼ばれます。 onCreate は初期化を行い、onStartCommand で実際の処理を開始します。 ここで長時間かかる処理を直接実行すると、サービスを開始した側がブロックします。呼出側がアクティビティなら GUI がフリーズしてしまいます。 したがって実際の処理は非同期で行うべきです。 非同期でタスクを実行する方法はたくさんありますので、いくつか当サイト内で紹介しますが、今回は繰り返し処理がポイントです。 比較的短い間隔での繰り返し処理を行う場合は