Android 如果需要使用jobInfo执行重复任务,如何设置jobFinished()?
我希望使用JobScheduler执行重复任务 我无法完全理解官方文件中的乐趣Android 如果需要使用jobInfo执行重复任务,如何设置jobFinished()?,android,android-jobscheduler,Android,Android Jobscheduler,我希望使用JobScheduler执行重复任务 我无法完全理解官方文件中的乐趣jobFinished() 如果我希望任务可以重复执行,那么jobFinished(parameters,false)和jobFinished(parameters,true)之间的哪个代码是正确的 顺便说一句,我已经为JobScheduler设置了setPeriodic(interval) 代码 private fun startScheduleRestore(mContext:Context){ logErr
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)
}
}
根据:
通过将true作为
wantsReschedule参数。这将对该参数应用回退策略
工作;该政策可通过退让标准(长期、,
初始计划作业时的int)方法。他刚开始工作
在重新安排作业时,无论发生什么情况,都会保留需求
放弃政策。
jobFinished(参数,true)
将重新安排作业
如果您想定期执行某些操作,请在您的
JobInfo.Builder
中使用,谢谢!我必须在我的代码中设置setPeriodic(interval)
。如果我希望任务可以重复执行,那么jobFinished(参数,false)和jobFinished(参数,true)之间的哪个代码是正确的?@HelloCW如果您设置了periodic(),那么您应该(参数,false)
,因为jobFinished()
是特定于作业的。jobFinished()不会阻止您设置的周期时间继续。它只是告诉作业你已经完成了,释放wakelock,所以Android不必强行终止作业。