1

私が知っているのは、デバイスがアイドルモードになっているときに、setRequiresDeviceIdle(boolean requiresDeviceIdle)というジョブを実行させる方法です。画面がオンのときにジョブスケジューラを設定します(デバイスはアイドル状態ではありません)。

私が望むのは、デバイスがアイドルモード(画面がオンで、ユーザーが電話を使用している)でないときにジョブを実行したいのですが、setRequiresDeviceIdle(false)はジョブを実行しません"false"と表示されている場合は、アイドル状態のときと不在のときに実行されるように、必須ではないという意味です。

+0

「JobScheduler」にはオプションがないと思います。 – CommonsWare

+1

あなたは正確に何をしようとしていますか? – ianhanniballake

+0

@ianhanniballake画面がオンになっている間に、さまざまなセンサから値を収集し、ファイルに保存するアプリケーションを作成しなければなりません。また、インターネット接続(画面の他に2番目の条件)があると、これはバックグラウンドで行わなければなりません。 – student93

答えて

2

JobSchedulerでこれを行うことはできません。画面の表示に基づいてトリガー動作を実行する場合は、常に実行している(ほとんどの場合、foreground service)、ACTION_SCREEN_ONをリスンするBroadcastReceiverをプログラムで登録する必要があります。

は明らかにこれはメモリ集約し、なぜそれが原因それはAndroid 7.0's light dozeから出てくるの条件の一つであることにJobSchedulerACTION_SCREEN_ON中にすでに存在する大量のメモリ圧力に言及しないことによってサポートされていないされ、システム全体の健康のために恐ろしい考えです)。

+0

ありがとうございます。だから私は別のアプローチを考えなければなりません。なぜなら、これはバッテリーの放電と思われるからです。 – student93

関連する問題