我正在尝试实现一套复杂的、基于时间的、用于在Android Lollipop
. 我需要在数据库中运行一个System API
和一个bulk insert
,所以它不应该超过 2-3 秒。我会打电话JOB1
的。规则是:
- 在应用程序启动时运行
JOB1
(简单,只需在 Application onCreate 处运行 AsyncTask)。 JOB1
每大约 4 小时运行一次。JOB1
仅在过去 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 小时运行一次不同的实例?