我希望使用JobScheduler执行重复任务。
我无法完全理解官方文档中有关jobFinished()
方法的用途。
如果我希望任务可以重复执行,那么在jobFinished(parameters, false)
和jobFinished(parameters, true)
之间哪个代码是正确的?
顺便说一下,我已经为JobScheduler设置了setPeriodic(interval)
。
代码
private fun startScheduleRestore(mContext:Context){
logError("Start Server")
val interval=10 *1000L
val mJobScheduler = mContext.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
val jobInfo = JobInfo.Builder(mContext.getInteger(R.integer.JobID), ComponentName(mContext, RestoreService::class.java))
.setPeriodic(interval)
.setPersisted(true)
.build()
mJobScheduler.schedule(jobInfo)
}
class RestoreService : JobService() {
override fun onCreate() {
logError("OnCreate")
super.onCreate()
}
override fun onDestroy() {
logError("OnDestory")
super.onDestroy()
}
override fun onStartJob(params: JobParameters): Boolean {
Thread(Runnable { completeRestore(params) }).start()
return true
}
override fun onStopJob(params: JobParameters): Boolean {
logError("OnStop")
return false
}
fun completeRestore(parameters: JobParameters) {
logError("Starting")
jobFinished(parameters, false)
}
}
setPeriodic(interval)
。如果我希望任务可以重复执行,那么在jobFinished(parameters, false)
和jobFinished(parameters, true)
之间哪个代码是正确的? - HelloCW(parameters, false)
,因为jobFinished()
是特定于作业的。 - Sagar