Job Scheduler有时不会被触发

问题描述 投票:6回答:2

电池电量低于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());

谢谢

java android android-studio android-jobscheduler
2个回答
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对答案的改进并提请注意这一点。


0
投票

参考Android Framework JobScheduler

JobInfo.isRequireBatteryNotLow()

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

Firebase JobDispatcher

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

© www.soinside.com 2019 - 2024. All rights reserved.