gpt4 book ai didi

android - Android:JobScheduler有时会重用同一工作实例?

转载 作者:行者123 更新时间:2023-12-02 13:28:44 24 4
gpt4 key购买 nike

我一直以为,如果您安排一个作业,它将始终为该作业创建一个新的JobService实例。经过一些测试,看起来有时会使用相同的作业实例吗?有时它将创建一个新实例,有时则不会。在开始新工作之前,我什至会取消上一个工作,其行为仍然相同。这正常吗?
编辑:
我正在使用3个共享相同工作类别的工作ID。

val jobScheduler = context.getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
jobScheduler.cancel(jobId)

// Set up the JobBuilder
val builder = JobInfo.Builder(jobId, componentName)
.setRequiredNetworkType(networkType)
.setPeriodic(uploadFrequency)
.setPersisted(true)
.setExtras(bundle)

// Schedule
jobScheduler.schedule(builder.build())

最佳答案

我面临的问题最简单的解决方法是不要在工作ID之间共享相同的工作类别。
例如:
JobId 100、101和102不应与同一作业类相关联,例如BackgroundJobService
相反,它们需要与diff不同的类关联,因此应该是从BackgroundJobService扩展的3个作业。

jobId 100 -> class JobService100: BackgroundJobService(){}
jobId 101 -> class JobService101: BackgroundJobService(){}
jobId 102 -> class JobService102: BackgroundJobService(){}
如果作业ID共享同一类,则JobScheduler会重用从其他作业ID创建的实例时会遇到问题。

关于android - Android:JobScheduler有时会重用同一工作实例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62630170/

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