Я использую следующий код для запуска повторяющейся задачи, я думаю, что 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))
}
Нет, сначала я вызываю startScheduleRestore, затем вызываю stopScheduleRestore
Но ваша работа периодическая. Таким образом, задание может не быть запущено до того, как вы вызовете stopScheduleRestore
вы отменяете работу до ее начала?