Ich versuche einen periodischen Job zu planen, der alle 15 Minuten ausgeführt wird, indem Sie android-job von evernote verwenden. Das Problem ist, dass der Job 2-3 Mal ausgeführt wird und dann nicht alle 15 Minuten ausgeführt wird. Innerhalb von 8 Stunden lief es fast 10-11 Mal, wenn das Gerät im Leerlauf war. Gibt es etwas, was ich falsch mache? Die einzige Anforderung, die mein Job hat, ist Netzwerk sollte verbunden sein, die verbunden war.Periodischer Job wird nicht konsistent ausgeführt, wenn Evernote Android-Job-Bibliothek verwendet wird
Erfordert Android-Job-Bibliothek etwas, dass Job ausgeführt wird? Dies ist mein Code für den Job
public class TestNetworkJob extends Job {
public static final String TAG = "TestNetworkJob";
@NonNull
@Override
protected Result onRunJob(Params params) {
Timber.i("onRunJob");
RetrofitUtils.getInstance().postSlack("TestCall: " + DateTimeUtils.getLocalizedDateTimeString(System
.currentTimeMillis()));
return Result.SUCCESS;
}
public static JobRequest buildJobRequest() {
return new JobRequest.Builder(TAG)
.setUpdateCurrent(true)
.setRequiredNetworkType(JobRequest.NetworkType.CONNECTED)
.setPeriodic(TimeUnit.MINUTES.toMillis(15))
.build();
}
}
Das klingt wie typisches Doze-Modus-Verhalten. Die Evernote-Bibliothek wirkt dem nicht entgegen. – CommonsWare
Wie können wir sicherstellen, dass alle 15 Minuten ein Job ausgeführt wird? Ich dachte, das wäre der entscheidende Punkt bei der Verwendung von Job-Scheduler-APIs. @CommonsWare – NinjaCoder