我知道在服务类中有一种乐趣可以让自己停止,在stopSelf()
中有同样的乐趣吗?
代码
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”:
从false
返回onStartJob
,这表示作业已完成,系统将释放唤醒锁。
如果onStartJob
返回true
,服务将继续运行,并在适当时使用单独的线程。在调用JobService
之前,jobFinished(parameters, false)
将处于活动状态。调用jobFinished(parameters, false)
将通知JobScheduler
作业已完成其工作。当系统收到此消息时,将释放为作业保留的唤醒锁。
关于android - JobService()如何停止自身?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50504113/