我知道服务类中有一个有趣的stopSelf()
可以阻止自己,在JobService()
中有同样的乐趣吗?
代码
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
}
private fun completeRestore(parameters: JobParameters) {
logError("Starting OK")
if (condition){
//stopself()
}
doSomting()
jobFinished(parameters, false)
}
}
加了:
private fun completeRestore(parameters: JobParameters) {
logError("Starting OK")
if (condition){
jobFinished(parameters, false) //Stop
} else{
doSomting()
jobFinished(parameters, false)
}
}
答案 0 :(得分:2)
“停止JobService”有两种方法:
false
返回onStartJob
,表示作业已完成,系统将释放唤醒锁。onStartJob
返回true
,服务将继续运行,并在适当时使用单独的线程。在JobService
被调用之前,jobFinished(parameters, false)
将处于有效状态。调用jobFinished(parameters, false)
将通知JobScheduler
该作业已完成其工作。当系统收到此消息时,它会释放为该作业保留的唤醒锁。