Я пытаюсь смоделировать режим Doze, когда мое приложение работает в фоновом режиме.
В этом случае поток продолжает работать, даже если устройство перешло в режим Doze. docs указывает на то, что блокировки пробуждения игнорируются, так почему процессор все еще включен?
Проверено: Эмулятор с Api 27
JobScheduler jobScheduler = (JobScheduler)getApplicationContext()
.getSystemService(JOB_SCHEDULER_SERVICE);
ComponentName componentName = new ComponentName(this, MyJob.class);
JobInfo jobInfo = new JobInfo.Builder(1, componentName)
.setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
.build();
jobScheduler.schedule(jobInfo);
Сервис
public class MyJob extends JobService {
static public int var=0;
@Override
public boolean onStartJob(final JobParameters jobParameters) {
new Thread(new Runnable() {
@Override
public void run() {
while(true) {
Log.d("Counter",var+++"");
}
}
}).start();
return true;
}
Оболочка:
adb shell dumpsys deviceidle force-idle