我想在后台实现下载功能,所以我正在使用 JobScheduling ,
我正在这样创建 JobScheduling
val pb = PersistableBundle()
pb.putString(Constant.FILE_URL, mediaHelper.url)
pb.putInt(Constant.JOB_ID, mediaHelper.id)
jobScheduler = getSystemService(Context.JOB_SCHEDULER_SERVICE) as JobScheduler
var serviceName = ComponentName(this, JobSchedulerService::class.java)
var jobInfo: JobInfo
val interval: Long = TimeUnit.SECONDS.toMillis(1)
val isPersistent = true;
val networkType: Int = JobInfo.NETWORK_TYPE_ANY;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
jobInfo = JobInfo.Builder(mediaHelper.id, serviceName)
.setMinimumLatency(interval)
.setRequiredNetworkType(networkType)
.setPersisted(isPersistent)
.setExtras(pb)
.build()
} else {
jobInfo = JobInfo.Builder(mediaHelper.id, serviceName)
.setPeriodic(interval)
.setRequiredNetworkType(networkType)
.setPersisted(isPersistent)
.setExtras(pb)
.build()
}
if (!isJobServiceOn(mediaHelper.id))
jobScheduler.schedule(jobInfo)
当我使用 JobService 类中的 AsyncTask 下载任何文件时,在其他设备中工作正常,但是在 Android 5.1 设备中,最多尝试3次作业在队列中,或者一段时间后开始下载一项作业,或者在 JobService 类中调用50%至60%的 onStop()方法,而 Job重新开始,反之亦然。
我没有发现仅与 Android 5.1 这样的问题有关的任何问题。 请任何人提出如何解决此类问题的建议。 谢谢。
注意:我有Android 5.1操作系统