0

私の質問はかなり単純ですが、複雑な答えになるかもしれません。

オンラインのmysql db(ウェブサイトのphpスクリプトを介して)で新しい更新をチェックするアプリを作成しています。場合によっては、この更新により、FTP サーバーからダウンロードする必要があることがアプリに通知されます。

アプリは起動時に起動し、15 分ごとに更新を確認する必要があります。

サービスまたは AlarmManager のいずれかを使用する必要があることを Web で読みましたが、どちらが優れているかわかりません。

また、AlarmManager がデバイスを「ウェイクアップ」すると書かれているページをたくさん読みましたが、これが実際に何を意味するのか、なぜサービスによって異なるのかを理解できませんでした。これは、電話機の電源がオフの場合に電源がオンになるということですか、それとも画面がオンになるということですか?

電話がオンのときにバックグラウンドでタスクを実行する必要があるだけで、画面をオンにしたり、デバイスの電源を入れたりする必要はありません。

4

1 に答える 1

1

サービスまたは AlarmManager のいずれかを使用する必要があることを Web で読みましたが、どちらが優れているかわかりません。

「または」ではありません。「と」です。AlarmManagerによって実行される作業をトリガーするには、を使用する必要がありますService

AlarmManager がデバイスを「ウェイクアップ」させると書かれているページをたくさん読みましたが、これが実際に何を意味するのか理解できませんでした

AlarmManager _WAKEUPイベント タイプ (例: )ELAPSED_REALTIME_WAKEUPは、デバイスをスリープ モードから復帰させます。WakefulBroadcastReceiverこれは、やなどと組み合わせてIntentService使用​​すると、通常はデバイスがスリープ状態 (画面と CPU がスリープ状態) であっても、定期的に作業を行うように手配できます。

電話がオンのときにバックグラウンドでタスクを実行する必要があるだけで、画面をオンにしたり、デバイスの電源を入れたりする必要はありません。

AlarmManager次に、_WAKEUPアラーム以外のタイプ (例: ) で使用できますELAPSED_REALTIME。作業中に問題が発生する可能性があるため、作業の途中でデバイスがスリープ状態にならないように、 と をWakefulBroadcastReceiver使用することをお勧めします。IntentService

于 2014-12-16T22:27:27.673 に答える