我正在尝试在我的应用程序在后台运行时模拟打盹模式。
发生的情况是线程将继续运行,即使设备已进入打盹模式。文档指定忽略唤醒锁,那么为什么 cpu 仍然打开?
测试: 带有 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