以前、デスクトップ環境で、株価アラート システムを実装するために、次のようにしました。
- インフィニティ ランニング をスポーンします
Thread。 - スレッドは、株式サーバーから株価クエリを実行します。
- スレッドは、取得した株価に基づいて、必要なすべてのアラート アクションを実行します。
- スレッドは N 期間スリープします。(N は 30 分としましょう)
- 2に戻ります。
モバイル環境に関しては、電力効率の使用が主要な考慮事項です。戻るボタンを使用してアプリケーションを「閉じた」場合でも、在庫アラートメカニズムは実行され続ける必要があります。
私の心から抜け出す方法は2つあります。
サービスを利用する
- インフィニティ ランニング をスポーンします
Service。 - このサービスは、株式サーバーから株価クエリを実行します。
- このサービスは、取得した株価に基づいて、必要なすべてのアラート アクションを実行します。
- サービスは N 期間スリープします。(N は 30 分としましょう)
- 2に戻ります。
AlarmManager を使用する
- にインストール
BroadcastReceiverしAlarmManagerます。 - BroadcastReceiver
onReceiveは、次の N 期間にトリガーされます。 - BroadcastReceiverがトリガーされている場合は、株式サーバーから株価クエリを実行します。
- BroadcastReceiver は、取得した株価に基づいて、必要なアラート アクションをすべて実行します。
- から戻る前に、次の N 期間に別の を
onReceiveインストールします。BroadcastReceiverAlarmManager
どの方法がいいの?と悩みました。2つの方法以外に良い方法はありますか?AlarmManager長時間眠る必要がないので、リソースを浪費しているように思えます。