У меня есть андроид-задание из библиотеки Evernote.Задание настроено на периодическое выполнение при определенных обстоятельствах.Поэтому сборка задания вызывается только тогда, когда я хочу периодически запускать задание (которого нет в начале моего приложения)
Создать JobService:
class JobService : Job() {
companion object {
private var jobId = 0
fun scheduleJobPeriodically(ms: Long) {
if (jobRequested()) {
cancelJob()
}
jobId = JobRequest.Builder("JOB_TAG")
.setRequiredNetworkType(JobRequest.NetworkType.CONNECTED)
.setPeriodic(ms, TimeUnit.MINUTES.toMillis(5))
.setRequirementsEnforced(true)
.build()
.schedule()
}
fun cancelJob() {
JobManager.instance().cancel(jobId)
}
}
override fun onRunJob(params: Params): Result {
Timber.d(">>>>>>>>>>>Job is Running")
Result.SUCCESS
}
}
JobCreator:
class MyJobCreator : JobCreator {
override fun create(tag: String): Job? {
return when (tag) {
"JOB_TAG" -> {
JobService()
}
else -> null
}
}
}
В классе приложения добавьте необходимую строку для регистрации задания:
JobManager.create(this).addJobCreator(MyJobCreator())
На этом этапеприложение запускается и создается класс JobService.(ОК) Но в этом классе есть этот метод scheduleJobPeriodically , и этот метод запускается, и не должен, потому что я не запускаю его явно.Я запустил мое приложение в режиме отладки и уверен, что периодическое создание не вызывается напрямую, а также JobRequestBuilder, который устанавливает тег для задания.Но код в onRunJob срабатывает, и это проблема.
Заранее спасибо.