問題タブ [android-doze-and-standby]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - Doze モードはフォアグラウンド サービスを一時停止します
私はデータロガーアプリを書いています.5分ごとに正確にhttpリクエストを行う必要があります. ユーザーはバッテリーの消耗を認識しており、私にとっては問題ありません。そのための適切な通知を備えたフォアグラウンド サービスを使用しており、実行可能なタスクを 5 分ごとにポストするハンドラー スレッドがあります。電話が DOZE MODE に入ると、スレッドが中断され、ランナブルが実行されないようです。それは正常な動作ですか、それとも何か不足していますか? それを行う方法についての助けをいただければ幸いです。
スレッドを開始するサービス コード:
スレッド コード:
android - Doze モードは、部分的/完全なウェイクロックの有無にかかわらず、バックグラウンド/フォアグラウンド サービスにどのように影響しますか?
これは簡単な質問です。G+ に関する巨大な投稿 (こちら) と、公式ドキュメント (こちら)に関する情報の欠如を見てください。
デバイスが「居眠り」モードになると、アプリのサービスはどうなりますか?
部分的/完全なウェイクロックの有無にかかわらず、バックグラウンド/フォアグラウンド サービス (バインド/アンバウンド、開始/未開始) に対して何をしますか?
たとえば、デバイスの画面がオフのときにオーディオ ストリームを再生するサービスを作成するにはどうしますか? オーディオ ストリームがローカル ファイルからではなく、ネットワークからのものである場合はどうなるでしょうか。
Google 開発者によるクレームがあったことを確認します。
フォアグラウンド サービスを実行しているアプリ (通知が関連付けられている) は、Doze によって制限されません。
-その後も多くの議論があり、これは完全に真実ではないと主張しています.特別なバックグラウンド操作アプリが何をすべきかを知るのはかなり混乱していると思います.
android - アプリがアプリ スタンバイ モードに入ったかどうかを検出する方法 (Android M+)
デバイスが DOZE IDLE または IDLE_MAINTENANCE モードの場合、「 android.os.action.DEVICE_IDLE_MODE_CHANGED 」のブロードキャスト レシーバーを登録すると、これらのイベントを受信できます。ただし、 adb コマンドを使用してアプリをアプリ スタンバイにする場合、このレシーバーは機能しません。Marshmallow 以降で実行されているデバイスのアプリがアプリ スタンバイ モードに移行したか、アプリ スタンバイ モードから終了したかをプログラムで確認することは可能ですか?
アプリをアプリ スタンバイにするために使用される adb コマンド
そして終了する
android - Alarm Manager setRepeatingがしばらくすると機能しなくなる
周りに同様の質問があることは知っていますが、どれも私を助けてくれませんでした...ブロードキャストレシーバーを起動するために繰り返しアラームを設定しようとしています。居眠りモードでアラームを延期することは知っていますが、気にしません。最初はアラームが正常に機能しますが、しばらくするとアラームがまったく配信されなくなります。これは私がアラームを設定する方法です:
レシーバー (WakefulBroadcastReceiver) の onreceive メソッド:
これが発生すると、SERV-RECEIVER ログが表示されないため、レシーバーも起動されないことに注意してください。私のインテント サービスは、SQLite データベースを開き、いくつかの作業を行い、それを閉じてから、ウェイクロックを解放します。受信者は、インテントなしで Android マニフェストに登録されます。
デバイスを居眠りモードに設定し、アプリを adb コマンドを使用して手動でスタンバイに設定しようとしましたが、デバイスを起動した後も正常に動作します。問題は、しばらく放置した場合にのみ発生します。adb shell dumpsys alarm を使用して、これが常に表示されていることに気付きました (アラームが停止した後でも)
しかし、これは問題が発生すると消えます (バッチセクションから):
Android API 15 モバイルでは、この問題は発生しないことに気付きました。私のAndroidマシュマロ電話でのみ...どんな助けも大いに感謝します:)ありがとう
android - Android 居眠りモードと IDLE_MODE_CHANGED インテント
デバイスが Doze モードに入ったときに Android で取得する単一の信頼できるコールバックを特定しようとしています。私は次のことを試しました:
上記のコード サンプルでは、デバイスが居眠りしているときにレシーバーが何度もヒットしています。私の試行実行では、logcat は次のように表示されました。
インテントが何度もヒットすると、このインテントに応じてアクションを実行できなくなります。デバイスが居眠り状態に入ったことを特定するために信頼できる他の意図はありますか???
このインテントが何度もヒットするのはなぜですか???
android - プログラムでアンビエント ディスプレイのオン/オフを切り替えるにはどうすればよいですか?
作成中のアプリからアンビエント表示のオン/オフを切り替えたい。
誰かが似たようなことを尋ねているこの質問に出くわしました。受け入れられた答えは、次のコード行でした。
しかし、これはアンビエント ディスプレイのためだけなのか、それとも「居眠り」機能全体のためなのか? また、質問は Nexus 6 に関するものでしたが、これはアンビエント ディスプレイ オプションを備えた Marshmallow+ スマートフォンでも機能しますか?
ありがとう!