現在、私は 2 つのセクションでセットアップされたアプリを持っています。アクティビティ部分はタスクとタスクの完了時間をデータベースに追加し、バックグラウンドで実行されてデータベースをポーリングし、タスクの完了時間に達したときにタスクを処理するサービスを持っています。
現在、私のサービスはスレッドを拡張するプライベート内部クラスを使用しており、thread.sleep を使用してタスク処理メソッドを再実行しています。この内部クラスは、サービス クラスの onStartCommand() から呼び出されます。thread.sleep が 15 分に設定されているか、それ以前にタスクを処理する必要がある場合は、このタスクを処理する必要がある時間までスリープします。この時点で、すべてが正しく機能していますが、いくつかの問題が発生しています。
サービスは特定の時間に実行する必要があり、電話がスリープ状態になっても、タスクをいつ完了する必要があるかによって常に変化します。
バッテリーへの影響を最小限に抑える必要があります。
調査の結果、アラームマネージャーを使用すると、必要なときにのみこのサービスを開始できることがわかりました。これは素晴らしいことですが、特定のタスクをいつ処理する必要があるかに基づいて時間間隔を常に変更するためです。これが正しい行動であることは確かです。
また、絶対に必要でない限り使用したくないウェイクロックについても読みました。
アプリでサービスを構築する方法と、これらのタスクをどのように処理するかについて、多かれ少なかれアドバイスを求めています。