gpt4 book ai didi

android - JobScheduler 和 JobIntentService

转载 作者:行者123 更新时间:2023-11-29 02:37:17 27 4
gpt4 key购买 nike

所以我目前使用 JobScheduler 根据各种条件安排作业,我想我会想使用 JobIntentService 来执行它们。但是,我看到 JobIntentService 也有一个 enqueueWork() 方法。这是 JobScheduler 的替代品吗?它是可选的,所以我可以忽略它,只使用 JobScheduler 来安排任务,让 JobIntentService 只担心执行吗?

谢谢。

最佳答案

为什么要使用 JobScheduler 来运行 JobIntentService?根据官方文档,对于 setOverrideDeadline(long) 为 0 的 Job,JobIntentService 将遵循标准的 JobScheduler 策略,并且您不能将其他 JobScheduler 的 选项应用于它。您必须使用它自己的 enqueueWork 方法来运行它,

enqueueWork(applicationContext, Intent(applicationContext, MyJobIntentService::class.java))

您的服务可以这样开发:

class MyJobIntentService : JobIntentService() {
val TAG = "TAG_MyJobIntentService"
override fun onHandleWork(intent: Intent) {
// do your work here
Log.i(TAG, "Executing work: " + intent)
}
companion object {
internal val JOB_ID = 1000

internal fun enqueueWork(context: Context, work: Intent) {
JobIntentService.enqueueWork(context, MyJobIntentService::class.java, JOB_ID, work)
}
}
}

别忘了把它放到你的 list 中

<service
android:permission="android.permission.BIND_JOB_SERVICE"
android:exported="false"
android:name=".MyJobIntentService">
</service>

关于android - JobScheduler 和 JobIntentService,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46338439/

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