Serviceはバックグラウンド処理を行うのに都合がいい機能が幾つか実装されている。
前置き
- Activityがバックグラウンドに移動しても、Serviceは動き続ける。
- Activityが終了した場合でも動き続けるような設定ができる。(正確には、Activity終了時にServiceを立ち上げ直しているもよう)
- Serviceの立ち上げ方は2種類あり、それによって挙動やライフサイクル、Activityとの通信方法などが異なる。
- ServiceはActivityなどと別のプロセスではない。
- Serviceは多重起動はできない。
4に関しては、Activityと同じスコープで実装・ビルドしている以上、そうなのかなと思ったが、
よく考えたら、Activityが落ちた後もずっと動いてるし、その後またActivityが立ち上がったらどうなるの...?と思った。
Serviceはライフサイクルが特殊なので、いろいろテストをして確認した結果も踏まえて、使用方法をまとめた。