gpt4 book ai didi

android - JobService() 如何停止自己?

转载 作者:搜寻专家 更新时间:2023-11-01 09:26:08 28 4
gpt4 key购买 nike

我知道 Service 类中有一个有趣的 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)
}
}

最佳答案

有两种方法可以“停止 JobService”:

  1. onStartJob 返回 false,表示作业已经完成,系统将释放唤醒锁。
  2. 如果 onStartJob 返回 true,服务将继续运行,并在适当的时候使用单独的线程。 JobService 将处于 Activity 状态,直到 jobFinished(parameters, false) 被调用。调用 jobFinished(parameters, false) 将通知 JobScheduler 作业已完成其工作。当系统收到此消息时,它会释放为作业持有的唤醒锁。

关于android - JobService() 如何停止自己?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50504113/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com