2011-06-21 7 views
7

私はアンドロイドサービスを実行していますが、データを更新するためにX時間ごとに特定のサービスメソッドを実行します。アンドロイドリソースを浪費することなくこれを行うには、何が最善の方法ですか?定期的にサービスメソッドを実行するにはどうすればよいですか?

+0

サービスを一度起動してから、タイマーを追加するか、好きな時間スリープさせてみませんか? – CodeKrieger

+0

これにより、サービスプロセスは* always *を実行する必要があります。何時間も。これはリソースには効果的ではありません。 –

+0

ありがとう!私は学んでいる、私はタイマーを追加する方法を検索します。どんな提案? – Ferran

答えて

8

AlarmManagerを参照してください。

説明:サービスメソッドを1時間ごとに実行したいので、今度はサービスプロセスをすべて実行する必要はありません。 AlarmManagerを使用することにより、OSは不要なときにサービスを強制終了し、起動時にメソッドを起動することができます。

+0

間隔が数分の場合はどうなりますか? AlarmManagerを使用することをお勧めしますか?または、サービスによって呼び出されたスレッドを数分寝かせることをお勧めしますか? – Leeeeeeelo

+1

@Leeeeeeelo - 効率を上げるために、小さな間隔(10-15分未満)で、AlarmManagerを使用しないでください。 SOの他の場所での議論があります。 http://stackoverflow.com/questions/11434056/how-to-run-a-method-every-x-seconds –

関連する問題