Androidで、定期的にプログラムを動かしたい時は、AlarmManagerにて、BroadcastReciverかServiceを起動させます。
前回のアーティクルでは、BroadcastReciverを用いましたが、AlarmManagerからの呼び出し以外でプログラム内部から直接呼出したいこともあります。
自分で受け取るBroadcastを投げても実現はできますが、サービスとして実装した方が自然です。

例えば、RSSReaderでは以下のような2種類の方法でサービスを起動しています。

  • 指定した感覚でFeedの取得
  • メニューのリフレッシュコマンドによるFeedの取得

Serviceに関しては、ApiDemoプログラムに簡単なサンプルプログラムがあるのでそちらを参照してください。

Serviceの実装


public class FeedService extends Service {
@Override
public void onCreate() {
}
@Override
public void onStart(Intent intent, int startId) {
//パラメータ取得
    Bundle extras = intent.getExtras();
    
doSomething();
}
}

実際には、作成するプログラムにより、スレッドを作成してその中で処理をします。

ブログ内の関連する記事