AndroidのServiceのライフサイクルについて
Androidアプリ開発初心者です。
今回初めてServiceを使ってバックグラウンド処理を行うアプリを作成しようとしています。
いくつかのドキュメントを参照したところ、ServiceをstartService()によって起動した場合、Serviceは明示的にstopService()もしくはstopSelf()で停止するまで終了しない、と記載されていたので、Applicationを終了してもServiceは動作し続けるものと理解しました。
ところが、ActivityからstartService()でServiceを起動した後、そのActivityが動作しているアプリケーションをRecentAppのリストから削除すると、Service が停止している様に見えます。
ただこの時ServiceのonDestroy()は呼ばれていません。
(ホームボタンでアプリがバックグラウンドに行っただけであれば確かにServiceは生きています)
これは正しい挙動なのでしょうか?
確かに考えてみると、Serviceは呼び出し元のアプリケーションプロセス上で動いているので、Recentから消すことでアプリケーションのプロセスが消滅してしまえば存続できるはずはない気がします。
だとするとServiceのライフタイムは実質Activityの終了と同等(onDestroy()まで)なのではないかと思えてしまえます。
しかも、Serviceが終了するまえに onDestroy() が呼ばれないので終了処理を行うことができません。
ActivityのonDestroy()では、必ずstopService()するようにすべきなのでしょうか。
初歩的な質問で恐縮ですが、よろしくお願いいたします。