2011-10-19 28 views
4

Alarm Managerを使用したAndroidのバックグラウンドサービスについて少し説明したり、より詳細な説明をしたりすることはできますか?AndroidのバックグラウンドサービスとAlarmManagerの比較

どのように違いますか?そしてどの状況で私はそれぞれを使うべきですか?

Webサービスから定期的にデータをダウンロードする必要があるアプリケーションを開発しています。アプリケーションにはモジュールがほとんどなく、各モジュールにはWebサービスにデータをダウンロード/同期させるための間隔時間が異なります。

レッツは +モジュールDは毎週 +モジュールEを同期させる必要があり、毎日に同期する必要があるごとに1時間 +モジュールCに同期する必要がある +モジュールAは15分毎 +モジュールBに同期する必要があると言います毎月同期する必要があります

どのアプローチが良いですか?なぜ?

よろしくお願いいたします。

答えて

6

アラームマネージャはインテントをスケジュールします。あなたのサービスはクラッシュする可能性があり、メモリが利用できない場合は削除することができます。しかし、アラームのスケジュールを設定すると、アラーム時刻に特定のサービスを呼び出すことができます。あなたのコンテキストでは、アラームは実行中のサービスよりも最良の選択肢です。

ご希望の場合はお手数ですが、

+1

ええ、それを得た...どのような状況で我々はバックグラウンドサービスを使用していますか? – rxlky

+0

バックグラウンドサービスは、バックグラウンドで何かしたいときに、あなたのクライアントがあなたのアプリの他の機能を使い続けられるように、あなたがサービスを利用すべき大きなファイルをダウンロードしたいときに使用されます。 –

0

アラームマネージャを使用して、インテントをスケジュールできます。あなたのサービスまたはBroadcastReceiverは、これらのスケジュールされたインテントを聞いて、指定された時間にタスクを実行できます。 AlarmManagerを使用してプログラムロジックを実装することはできません。

AlarmManagerを使用して、Intentを15分ごとにAのアクション、Bを1時間ごとにディスパッチすることができます。あなたのモジュールが独立したサービスとして実装されているか、何をすべきかを決める意思決定をします。

BroadcastReceiverでは長い操作をしないでください。

+0

サービスを拡張するアクティビティはBroadcastReceiverと同じですか? Androidサービスはお勧めしませんが、Alarm Managerを使用しています。どういう意味ですか? – rxlky

+0

それはBroadcastReceiverと同じではありません。あなたの問題のために、おそらくBroadcastReceiverに関するすべてのことを忘れることができます。アラームマネージャを使用するための推奨事項は、あなたがあなたの仕事のためにあなたのサービスを開始します、特定の時間後に意図を派遣するAlarmManagerを使用するが、特定の時間間隔を待っているすべての時間を実行しているサービスを持っていなければならないことを意味します。それによって、デバイスのリソースはそれほど使用されることはありません。 – senola

+0

ええ、それを持っています...どのような状況で我々はバックグラウンドサービスを使用していますか? – rxlky

関連する問題