Я хочу добиться загрузки в фоновом режиме, поэтому я использую 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)
В других устройствах работает нормально, когда я загружаю любой файл, используя AsyncTask в классе JobService , но в устройствах Android 5.1 максимум 3 попытки задания в очереди или когда одинзагрузка начинается через некоторое время или от 50 до 60% onStop () вызов метода в JobService классе и повторном запуске задания наоборот .
Я не нахожу никаких проблем, связанных с этой единственной Android 5.1 такой проблемой.Любой, пожалуйста, подскажите, как решить этот тип проблемы.Спасибо.
Примечание: у меня ОС Android 5.1