小编han*_*nif的帖子

Android JobScheduler执行了好几次

我使用以下代码使用Androids JobScheduler API创建和安排作业:

Log.d("hanif", "Scheduling periodic job 2 hrs with 20 mins backoff linear");

JobInfo jobInfo = new JobInfo.Builder(JOB_ID,
            new ComponentName(getApplicationContext(), MyJobService.class))
            .setPeriodic(TimeUnit.HOURS.toMillis(2))
            .setRequiresCharging(true)
            .setRequiredNetworkType(JobInfo.NETWORK_TYPE_ANY)
            .setBackoffCriteria(TimeUnit.MINUTES.toMillis(20),
                                        JobInfo.BACKOFF_POLICY_LINEAR)
            .build();
JobScheduler scheduler = 
                (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE);
scheduler.schedule(jobInfo);
Run Code Online (Sandbox Code Playgroud)

即每2小时执行一次定期工作,如果工作失败,执行20分钟*的线性退避策略将失败.

我的工作服务代码编写如下:

public class MyJobService extends JobService {

    @Override
    public boolean onStartJob(JobParameters jobParameters) {
        Log.d("hanif", "onStartJob");
        new MyWorker(getApplicationContext(), this, jobParameters).execute();
        return true;
    }

    @Override
    public boolean onStopJob(JobParameters jobParameters) {
        Log.d("hanif", "onStopJob");
        return true;
    }

    private static class MyWorker extends AsyncTask<Void, Void, Boolean> {
        private final Context …
Run Code Online (Sandbox Code Playgroud)

java android android-jobscheduler

22
推荐指数
1
解决办法
4163
查看次数

标签 统计

android ×1

android-jobscheduler ×1

java ×1