android - 为什么不启动 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))
}
解决方案
推荐阅读
- c# - 自引用列表的 EF 核心配置
- laravel - 有没有办法用 vue js 从源代码中更改元标记?
- angular - 角度 11 中的覆盖小部件位置问题
- c# - 删除 SYSTEM\ControlSet001\Enum\USB 子键
- python - Plotly Dash (Flask) 回调未退出 Docker 容器内部
- java - IBM ODM 规则措辞
- python - tkinter 'Hangman' 练习的初学者问题
- elasticsearch - 是否可以在弹性搜索中的同一字段上声明“文本”和“关键字”?
- c++ - 如何删除/删除 cmake 目标?
- python - 在子目录中导入顶级文件