作业进行中时,Android Lollipop OS中的JobScheduling onStop调用

时间:2018-10-15 06:44:43

标签: android service android-asynctask android-jobscheduler

我想在后台实现下载功能,所以我正在使用 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操作系统

0 个答案:

没有答案