2011-07-15 7 views
1

私のアプリが使用する情報を更新するバックグラウンドプロセスを実装しています。 このプロセスは、プロセスのデータが前回のものよりも新しいものを取得した場合にのみ、このプロセスを1日1回更新する必要があります。これは、twitter/gmailのようなものです。メインアプリが実行されていないときの通知を表示するバックグラウンドプロセス

メインアプリケーションが開いていなくても、更新プロセスを自動的に実行します。

Serviceは最善の方法ですか?私はこれについてかなり読んできました。一日一回だけ仕事をしてくれる何かのためにいつも稼働しているサービスを考えたのはちょっと残酷すぎるようです。

しかし、私はGoogleのサービスに、友だちの場所とgoogle +サービスを続けていることに気付いています。

私はAlarmManagerを介してサービスを開始するように見ました。そのため、必要なときにのみ起動します。 投稿の中にはHandlerクラスを使用することをお勧めしますが、これはうまくいかないと思います。

ここでベストプラクティスを探してください。

答えて

2

私は一日一回だけ仕事をするつもりのために何かのために常時稼働しているサービスを考えました。

絶対に。

私はAlarmManagerを介してサービスを開始するようにしました。これは、必要なときにのみ開始されました。

これは正解です。

デバイスがオンの場合にのみコードを呼び出す場合は、IntentServiceを実装し、onHandleIntent()で作業し、AlarmManagerで希望するスケジュールでサービスを起動してください。あなたのコードが目を覚ますために電話を強制したい場合は、あなたがそれを行うことができます

ていますが、_WAKEUPスタイルのアラームを使用する必要がありますし、あなたはおそらく、このパターンを処理するために設計された、私のWakefulIntentServiceを見たいと思うでしょう。

+0

ありがとうございました、私はまともな線の上にいたようですが、まともな説明のおかげで。 – Rob

関連する問題