Job Scheduler有时不会被触发

时间:2017-12-26 06:10:04

标签: java android android-studio android-jobscheduler

当电池电量低于15%时,Job Scheduler不会触发。有没有办法超越电池问题。该设备仅用于特定的应用程序,其他任何东西都不会运行。

该设备是Lenovo Tab 3 A7-10并在Android Lollipop(5.0.1)上运行。

jobScheduler.schedule(new JobInfo.Builder(MY_JOB_ID,
                new ComponentName(applicationContext, MyJob.class))
                .setPeriodic(syncInterval)
                .build());

由于

2 个答案:

答案 0 :(得分:0)

根据Android Developers Documentation

JobInfo.isRequireBatteryNotLow()

声明:

如果电池电量等于或低于严重阈值,则作业不会运行;这是设备显示低电量警告系统对话框的级别。

此外,

setRequiresBetteryNotLow(boolean batteryNotLow)

here声明:

指定要运行此作业,设备的电池电量不能低。默认为 false 。如果 true ,作业将仅在电池电量不低时运行,这通常是用户被给予 低电量的点"警告。

不幸的是,对于以下的API 26,使用JobScheduler以及如何使用它的访问权限较少。可能您可能无法使用我在API 26下面提到的方法。您可以在此处找到支持性证据:Android JobScheduler

Firebase JobDispatcher用作针对Android版本低于5.0(API级别21)的应用的JobScheduler兼容层。我不确定它是否会让你实现你想要的场景,但看看它。

感谢@ianhanniballake改进答案并提请注意。

答案 1 :(得分:0)

参考Android Framework JobScheduler

JobInfo.isRequireBatteryNotLow()

如果电池电量等于或低于严重阈值,则作业不会运行;这是设备显示低电量警告系统对话框的级别。

Firebase JobDispatcher

Firebase JobDispatcher 最低API 9 需要Google Play JobScheduler自定义重试策略