Android startet JobScheduler zu einer bestimmten Zeit

Ich möchte einen JobScheduler zu einem bestimmten Zeitpunkt startentäglic, und beenden Sie es nach 3 Stunden.

Ich habe die Aufgabe, den Job alle 20 Minuten und für 3 Stunden auszulösen, aber in der JobInfo.Builder-Klasse gibt es keine Möglichkeit, den Job zu einem genauen Zeitpunkt zu starten.

Über das @ geh JobInfo.Builder Klassenübersicht, da gibt es nichts, was die Zeit zum Starten eines JobSchedulers festlegt.

Offensichtlich möchte ich es nicht den ganzen Tag laufen lassen und prüfen, ob die Zeit stimmt. Dadurch wird mehr Batterie als benötigt entladen und die Programmierung ist schlecht.

Ich habe darüber nachgedacht, einen Alarm auszulösen, der zu dem von mir angegebenen Zeitpunkt ausgeführt wird und diesen Job auslöst, aber dies scheint ein bisschen übertrieben zu sein.

 JobInfo.Builder builder = new JobInfo.Builder(NIGHT_SYNC_JOB_ID, 
 new ComponentName(context, NightSyncDataJobService.class));

 //Job starts at 11pm, and ends at 2am. Running every 20 minutes.
 builder.setPersisted(true); //Job scheduled to work after reboot
 builder.setPeriodic(Consts.ONE_MINUTE * 20);

 JobScheduler jobScheduler = (JobScheduler) context.getSystemService(Context.JOB_SCHEDULER_SERVICE);
 jobScheduler.schedule(builder.build());

Wenn Sie neben AlarmManger, der diesen JobScheduler auslöst, noch eine andere Lösung für das Problem haben, sind wir Ihnen sehr dankbar.

Antworten auf die Frage(4)

Ihre Antwort auf die Frage