2010-11-28 3 views
0

私のアプリケーションが使用するデータベースを更新するためにX分ごとにREST APIリクエストを実行したいと思います。Android - Unixのcronjobのようなものを実装してください

私のアプリケーションが動作しているかどうかにかかわらず、それは起こるはずです。つまり、ユーザーがモバイルを再起動した場合、アプリケーションを最初に実行する必要はなく、ポーリングを直ちに開始する必要があります。 Androidのサービスを経由している可能性があり

は基本的に私はこのUnixのcronジョブ

*/5 * * * * /usr/local/bin/update_something.sh 

の種類を実装したいですか?もしそうなら、あなたに私に基本的な指示を教えてもらえますか?

ありがとうございました。

答えて

3

はい、サービスを使用できますが、関連する時点でサービスを開始/開始する必要があります。 AlarmManagerのようなクラスを使用して、x分ごとにサービスをトリガーできます。

http://developer.android.com/reference/android/app/AlarmManager.html

編集 -

あなたはそのため、このリンク

http://www.androidcompetencycenter.com/2009/06/start-service-at-boot/

+0

間隔を制御する設定をユーザに与えずに、15分未満の間隔でバックグラウンドからネットワークをポーリングすることは、一般的にユーザのバッテリ寿命に無礼であり、考慮しないことに注意してください。この種の設定の例については、Twitterのアプリを参照してください。ユーザーは、5分ごとから4時間ごとのいずれかに投票する選択肢が提供されています。 'AlarmManager'で提供される不正確な間隔を使用して、システムがあなたのアプリケーションを同時に起きさせるようにしてください。 – adamp

0

Android Serviceが行く方法です。

+0

アプリケーションは明示的にサービスを開始する必要があります。私は彼らが携帯電話で起動した直後に開始することはできません恐れている。 – dan

1

を放送受信機

<action android:name="android.intent.action.BOOT_COMPLETED" /> 

のChkを使用することができ、デバイスの起動時にあなたのサービスを開始するには、ここで私はそれを行う方法です:

  1. はそのBroadcastReceiverがその意図を受信すると、(あなたがその意図を受け取るためにあなたのマニフェストに許可を宣言します)
  2. などIntent.ACTION_BOOT_COMPLETEDとして、許容可能な放送Intentに耳を傾けBroadcastReceiverを持って、それが呼び出す必要がありAlarmManagerを設定するアラーム設定Service。あなたの本当のサービスはAlarmManagerにより送信されたインテントを受け取ることになります - それは本当の Service every five minutes. (I don't know the details about how AlarmManager`する意図を送信するようにAlarmManagerを設定することをサービスでは、
  3. あなたはその最初のサービスを停止することができます)動作します。
関連する問題