質問: googleの提供しているアラームアプリのソースコードが公開されていたためソースを読んだ所、アラーム鳴動時のアラーム音とバイブレーションを行う処理が、アラーム鳴動時のActivityではなく、Service内で実装されておりました。Activity内で実装すれば良いと思うのですが、何故わざわざServiceを起動する様な実装としているのでしょうか。 参考サイト https://android.googlesource.com/platform/packages/apps/AlarmClock/
回答: Activityのライフサイクルはユーザーに見えているかがとても重要となります。 端末内の状態次第ではユーザーに見えていないActivityは強制終了させられる可能性があります。 このような状態でいつ鳴るかわからないアラームアプリを作ろうとした時に、実際に鳴る時間にActivityが存在しているかわかりません。 そのため、バックグラウンド処理を想定して作られたServiceが使われているのだと思います。