首页 > 解决方案 > 为什么不启动 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))

}

标签: android

解决方案


推荐阅读