1

我正在尝试实现一套复杂的、基于时间的、用于在Android Lollipop. 我需要在数据库中运行一个System API和一个bulk insert,所以它不应该超过 2-3 秒。我会打电话JOB1的。规则是:

  1. 在应用程序启动时运行JOB1(简单,只需在 Application onCreate 处运行 AsyncTask)。
  2. JOB1每大约 4 小时运行一次。
  3. JOB1仅在过去 4 小时内未运行时才运行 [可选 - 即使在应用程序启动时也不运行]
  4. JOB1无论规则 3 如何,都在 23:59(或晚上 11:59)运行。

我不认为单个实例JobScheduler可以遵循所有这些规则,或者至少我还没有弄清楚。

奖金问题:

    JobScheduler jobs = (JobScheduler) getSystemService(JOB_SCHEDULER_SERVICE);
    JobInfo.Builder b = new JobInfo.Builder(SYNC_JOB_ID,
            new ComponentName(this, SyncJobService.class));
    b.setRequiredNetworkType(JobInfo.NETWORK_TYPE_NONE);
    b.setPeriodic(getPeriod(6)) //6 hours
            .setPersisted(true)
    jobs.schedule(b.build());

Application启动时调用它会覆盖之前的调用,或者我会JobScheduler每 6 小时运行一次不同的实例?

4

0 回答 0