2017-02-16 2 views
1

私のアプリをAndroid 6にアップデートしたいと思います。私はalarmanagerを使ってバックグラウンドサービスをスケジュールします。私のサービスのためには、1時間程度の長いウィンドウで目が覚めることが重要です。そのウィンドウで目を覚まさなければならないので、一度デバイスが眠ってしまうのではなく、ウィンドウで目を覚ますときは気にしません。Android dozeアラームウィンドウ

現在、アラームを設定するのに.setWindowを使用しています。ドーズモードで動作させるにはどうすればよいですか? Androidは最終的に、したがって、電池の最適化についての厳密に決定しているよう

答えて

0

居眠りモードではそれが見え間はsetWindowAndallowWhileIdle

そして、私の知る限りではなく、一定時間の窓を設定、ありませんが、特に好ましいする必要がありますbypassドーズモードは難しいです。要点は、何時間も停止していて、メンテナンスウィンドウ(ジョブが開始される場所)またはユーザーがデバイスをピックアップするまで待つ必要のあるデバイスでは、実際に作業を行うべきではないということです。

JobScheduler:それは文字通りそれが何のために作られているのか、周期性、計量された/測定されていないネットワーク、課金などの基準に基づいてスケジューリングの点で様々なバリエーションを提供します。

彼らは私たちが就寝中に全く仕事をしたくないと思っています。だから私が考えることができるから、あなたのユースケースは「1時間に1回」は今から最善の約束に過ぎません。スケジュールと「希望」。つまり、Android Nには、メンテナンスウィンドウがより速いdozeモードの「practical」(寛大な)バージョンがあります。あなたはテストすることができます、私の感覚は、それが聞こえるほど憂鬱ではないということです。ポリシーは公正です:ユーザーが電話とのやりとりの意思を示した場合、仕事を引き起こします。

refは

https://www.bignerdranch.com/blog/diving-into-doze-mode-for-developers/
+0

自分のアプリケーションの全体のポイントは、ユーザがデバイスと対話していない間にデータを記録することです。だから私はドーズモードでデバイスを起動する必要があります。だから私は、ウィンドウを設定し、システムにアラートをバッチする可能性を与える代わりに、私のウィンドウ内で起こっていることを確実にするために正確なアラームを設定しなければならないということはちょっと残念だと思う。 – Ben

+0

はい、あなたは正しいですが、正確なアラームを設定してください[ウィンドウの代わりに19の後には正確ではないと思われる]は、あなたのために行く方法のように見えます。 「アプリケーションの全体的なポイントは、ユーザーがデバイスとやりとりしていない間にデータを記録することです。」つまりアンドロイドがもう必要としないものです。彼らの議論は、無駄に保たれた機器では電池の消耗が起こらないということです。ユーザは同じものを使用していないので。 –

関連する問題