Rso's Jotter

日々の開発の知見のメモやその他雑記

Serviceの多重起動

Androidはバッググラウンドで動かしたいプロセスはサービスとして起動させることができる。

Serviceがすでに起動している状態で同じサービスを起動したらどうなるんだろう。
簡単に実験するとこんな感じ。

//TestServiceクラスを適当に定義しておく
//ManifestにTestServiceを記述しておく
Intent intent = new Intent(context, TestService.class);
context.startService(intent);
context.startService(intent); // 多重起動


これで実行してみたら特に何も言われずにサービスが1つ起動された。
ライフサイクルを表すログを見るとこんな感じ。

service is created
service is started
service is started


要するにonCreateは初めの一度だけ呼ばれるけどonStartはサービスを起動するたびに呼ばれるらしい。


ちなみに起動していないサービスを終了させてみても何も言われない。
何かログとか吐いてるんやろうか。