首页 > 解决方案 > 即使在设置 setMinimumLatency 和 setOverrideDeadline 之后,计划的作业也不能正确重复

问题描述

我已经安排了一个每 10 秒重复一次的工作。我已经尝试使用带有 setMinimumLatency 和 setOverrideDeadline 的作业调度程序,但我的工作没有重复。我遵循了不同的教程和博客,完成了那里显示的所有内容,但效果不佳。

我的代码如下:

显现:

<service android:name=".JobServiceClass"
            android:permission="android.permission.BIND_JOB_SERVICE"
            android:exported="true"
            >
        </service>

JobServiceUtils:

@RequiresApi(api = Build.VERSION_CODES.LOLLIPOP)
    public static void scheduleJob(Context context)
    {
        ComponentName componentName=new ComponentName(context,JobServiceClass.class);
        JobInfo.Builder jobInfo=new JobInfo.Builder(1000,componentName);
        jobInfo.setPersisted(true);
        jobInfo.setMinimumLatency(10000);
        jobInfo.setOverrideDeadline(10000);
        JobScheduler jobScheduler=(JobScheduler)context.getSystemService(Context.JOB_SCHEDULER_SERVICE);



        if (jobScheduler!=null){
            jobScheduler.schedule(jobInfo.build());
        }
    }

工作服务类:

@Override
    public boolean onStartJob(JobParameters params) {

        Toast.makeText(getApplicationContext(),"Job service thread",Toast.LENGTH_LONG).show();
        asynctaskClass=new AsynctaskClass(getApplicationContext(), new AsynctaskResult() {
            @Override
            public void asyncTaskResult(String result) {

            }
        });
        return true;
    }

    @Override
    public boolean onStopJob(JobParameters params) {
        Toast.makeText(getApplicationContext(),"Job service thread stop",Toast.LENGTH_LONG).show();
        return true;
    }

从活动初始化:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            JobServiceUtils.scheduleJob(MainActivity.this);
        }else {
            Intent intent1 = new Intent(this, ServiceClass.class);
            intent1.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            startService(intent1);
        }

谁能告诉我我在这里缺少什么

标签: android

解决方案


推荐阅读