定期的JobScheduler不遵守约束

定期的JobScheduler不遵守约束,第1张

概述使用JobScheduler,我设置了一个简单的JobService,如下所示:@TargetApi(21)publicclassSimpleJobServiceextendsJobService{privatestaticfinalStringTAG="SimpleJobService";@OverridepublicbooleanonStartJob(JobParametersjobParameters){

使用JobScheduler,我设置了一个简单的JobService,如下所示:

@TargetAPI(21)public class SimpleJobService extends JobService {    private static final String TAG = "SimpleJobService";    @OverrIDe    public boolean onStartJob(JobParameters jobParameters) {        if (jobParameters.isOverrIDeDeadlineExpired()) {            Log.d(TAG, "This shouldn't happen");            Toast.makeText(this, "This shouldn't happen", Toast.LENGTH_LONG).show();        }        jobFinished(jobParameters, false);        return true;    }    @OverrIDe    public boolean onStopJob(JobParameters jobParameters) {        return true;    }}

然后,我将JobService设置为定期(每分钟),并要求不计量的网络和收费:

    Componentname jobServiceComponent = new Componentname(this, SimpleJobService.class);    JobInfo.Builder builder = new JobInfo.Builder(2, jobServiceComponent);    builder.setPersisted(true);    builder.setPeriodic(60000);    builder.setRequiresCharging(true);    builder.setrequiredNetworkType(JobInfo.NETWORK_TYPE_UNMETERED);    JobScheduler jobScheduler = (JobScheduler) getSystemService(Context.JOB_SCHEDulER_SERVICE);    jobScheduler.schedule(builder.build());

无论我的设备正在充电还是在未测量的网络上,都会调用SimpleJobService的onStartJob.

setPeriodic(long)的文档说它不能与setOverrideDeadline(long)一起使用(无论如何我也不能),但是我很惊讶onStartJob中的jobParameters.isOverrIDeDeadlineExpired()对于这种设置曾经是真的.

我在这里想念什么吗?

在我看来,这似乎是一个AndroID错误,但令我惊讶的是我找不到其他人报告此问题.

在AndroID 6.0.1上观察到此行为

解决方法:

定期工作有一个隐含的期限期末,如the source code所示.

就像明确设置截止日期一样,这可以让您有机会在不满足条件的情况下,决定如何最好地处理延长的时间(您会注意到有一个最小间隔,可在AndroID 7.0设备上查询到getMinPeriodMillis()).例如,如果约束是硬性要求,则可以调用jobFinished(jobParameters,false)等待下一个周期性终点或条件为真.

总结

以上是内存溢出为你收集整理的定期的JobScheduler不遵守约束全部内容,希望文章能够帮你解决定期的JobScheduler不遵守约束所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/web/1094759.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存