Работа запускается при запуске приложения и не должна - PullRequest
0 голосов
/ 30 мая 2018

У меня есть андроид-задание из библиотеки 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 срабатывает, и это проблема.

Заранее спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...