Androidでのサービス機能は
画面を持たず、バックグラウンドで独立して動作するプログラム
これはLinuxのサーバーのようなもの
この機能を使えば、
長いダウンロード処理とか
音楽再生などを画面処理から切り離して動作させられる
例えば、音楽を聞きながらWebブラウザー閲覧などができるようになる
サービスの実装方法は2つ
startService()を使う方法
バインドを使う方法
まず、startService()から
これは
アクティビティやサービスから
サービスを呼び出す方法
Activityクラスの
startService()でサービス起動
stopService()でサービス停止
一番簡単な実装方法だが
欠点として
アクティビティから行えるのは
サービスの起動と停止のみ
もうひとつのバインドについて
こちらは
アクティビティとサービスを明示的に
結びつけることで
サービスの起動/停止だけでなく
アクティビティとサービスの相互操作が可能
アクティビティとサービスをバインドするには
アクティビティとサービスのの両方に
AIDLファイルを用意する
AIDLは
Android
Interface
Definition
Language
の略
このAIDLファイルに定義した
インターフェースを使うことで
アクティビティとサービスが互いにやりとりできるようになる