Почему не запускается onStopJob?

Я использую следующий код для запуска повторяющейся задачи, я думаю, что logError("OnStop") будет запущен после того, как я вызову stopScheduleRestore. Но на самом деле logError("OnStop") не запускается, почему?

class RestoreService : JobService() {

    override fun onStartJob(params: JobParameters): Boolean {
        logError("OnStart")

        Thread(Runnable { completeJob(params) }).start()
        return true
    }

    override fun onStopJob(params: JobParameters): Boolean {
        logError("OnStop")
        return false
    }


    fun completeJob(parameters: JobParameters) {
        logError("OK")
        jobFinished(parameters, false)
    }

}


fun startScheduleRestore(mContext:Context){  
    val mJobScheduler = mContext.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
    val jobInfo = JobInfo.Builder(mContext.getInteger(R.integer.JobID), ComponentName(mContext.packageName, RestoreService::class.java.name))
                        .setPeriodic(interval)
                        .setPersisted(true)
                        .build()

    mJobScheduler.schedule(jobInfo)
}


fun stopScheduleRestore(mContext:Context){
    val mJobScheduler = mContext.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
    mJobScheduler.cancel(mContext.getInteger(R.integer.JobID))

}

вы отменяете работу до ее начала?

Sagar 10.05.2018 09:28

Нет, сначала я вызываю startScheduleRestore, затем вызываю stopScheduleRestore

HelloCW 10.05.2018 09:33

Но ваша работа периодическая. Таким образом, задание может не быть запущено до того, как вы вызовете stopScheduleRestore

Sagar 10.05.2018 09:35
1
3
67
0

Другие вопросы по теме