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