Androidでサービス(Service)を作る

Androidはあんまり得意じゃなくて初心者だけれども、サービスをこの間作ったのでメモメモ。

そもそもサービスって何だろうって感じだけど、画面を伴ってフォアグラウンドで動くのがActivityで、そうではなくバックグラウンドで動き続けるのがServiceかな?大体出来る事は結構同じみたい。それよりも、アプリを開発する中でサービスってどういう位置づけなのー?ってところからよくわかってなかったけど、とりあえず、サービスをAndroidのプロジェクトに登録しとけばあとは適切なタイミングで動くらしいですね。サービスの登録は、AndroidManifest.xmlに書き込みを行います。ここでは、サービスを実装するファイルを、ServiceSample.javaとしてお話をすすめます。

じゃぁ実際どうやって作るかっていうと、継承するクラスをActivityからServiceに変えるだけ。超簡単。

これだけで、このクラスはサービスとしての振る舞いを行うようになります。これでAndroidにインストールをすれば晴れてサービスのインストール完了です。

…….起動は?

Androidのサービスは簡単に作れて便利なのですが、ちょっとしたクセ(バグ?Android3.x以降)があります。それは、Androidのサービスは一度起動されるまで停止状態(STOP状態)のままになってしまっていて、システムのメッセージ(起動完了:ACTION_BOOT_COMPLETED等)を受け取れないというものです。つまり、インストールが完了しても何らかのアクションが無いと、結局サービスとして起動されないという事ですね。ということで、どこかでサービスを起動してあげましょう。MainActivity(Activityを継承したクラス)からServiceSampleを起動するには次のようにします。

この処理をサービスを起動したいタイミングで書いてあげれば、Activityからのサービスの起動が可能です。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次のHTML タグと属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">