首页 > 解决方案 > Android 唤醒锁在打盹模式后仍然存在?

问题描述

我正在尝试在我的应用程序在后台运行时模拟打盹模式。

发生的情况是线程将继续运行,即使设备已进入打盹模式。文档指定忽略唤醒锁,那么为什么 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

标签: androidandroid-serviceandroid-jobschedulerandroid-dozeandroid-doze-and-standby

解决方案


推荐阅读