2012-03-07 6 views
1

初めて私はこれらのどちらかを実装しようとしましたが、私はどちらを使うべきか不明です。サービスまたはBroadcastReceiver?

私のアプリケーションで時間枠を作成したいとします。 2/3/12〜7/3/12。このような複数の時間枠を作成することができます。異なる間隔(たとえば4時間ごと)で、私のアプリケーションが各時間枠ごとにいくつかのアクションをプリフォームすることを望みます。これはバックグラウンドで行う必要があります。

私は最初にこれをサービスで実装しようとしましたが、各時間枠ごとにすべてのアクションを同時に実行しています。アンドロイドブログ "Android wayをマルチタスキングする"を読んだら、おそらくBroadcastReceiversが優れていると思います。

答えて

2

をお知らせくださいAlarmManagerを使用してについての私の答えを参照してください - Running task periodicaly(once a day/once a week)

あなただけ、あなたが尋ねるしようとしている(例えば、オーディオレベルをモニターすること)常に設定した時間にプロセスを実行しているのではなくされている場合そこに座って時間の90%を守り、電池の消耗を除いて何もしないサービス。 AlarmManagerは、この問題を、ブロードキャスト受信機に所定の時間に実行するよう通知するときにこの問題を解決します。

編集:電話の再起動後、すべてのアラームが削除されるので、必要なアラームを再登録できるように、デバイスの起動を通知するためにブロードキャストレシーバを登録する必要があります。

+0

ありがとうございます。そのチュートリアルを書くことに慣れましたか? – Shane

+0

シェーン - 私はまだ仕事中に埋葬されているので、良い答えと答えはいいですが、あなたが尋ねて以来、私は書くことができます。ここに良いチュートリアルがあると言ってhttp://www.vogella.de/articles/AndroidServices/article.html –

+1

くそ、最初に行く – zode64

2

あなたはおそらくAlarmManagerIntentServiceを使用する必要があります。

AlarmManagerは、指定された間隔でIntentServiceを起動します。 IntentServiceは、アクションのセットごとに開始できます。

関連する問題