Ich möchte einen JobScheduler zu einer bestimmten Zeit jeden Tag starten, und es nach 3 Stunden zu beenden.Android starten JobScheduler zu bestimmten Zeitpunkt
Ich habe den Teil der Auslösung des Jobs alle 20 min und für 3 Stunden, aber in der JobInfo.Builder-Klasse gibt es keine Option, den Job zu einer genauen Zeit zu starten.
Geht man über die JobInfo.Builder Klassenübersicht, gibt es dort nichts, was die Zeit für den Start eines JobSchedulers einstellt.
Offensichtlich möchte ich es nicht den ganzen Tag laufen lassen, und überprüfen Sie, dass die Zeit übereinstimmt, dies wird mehr Batterie als nötig entladen, und ist schlecht Programmieren.
Ich dachte daran, einen Alarm zu machen, um zu der Zeit zu laufen, die ich spezifiziere, und würde diesen Job auslösen, aber das 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 eine andere Lösung für das Problem haben, neben AlarmManger, die diese Jobscheduler löst, wird sehr geschätzt werden.
Anstatt es täglich zu planen, möchte ich einen Job für bestimmte Tage planen (sagen wir einfach für Sonntag, Mittwoch, Samstag), Ist es möglich mit JobSchedular @prerak –
Nicht sicher, der einzige Weg, wie ich denken kann, ist Sie töten bestehenden Job und einen zukünftigen mit dem Offset neu planen. Müssen Sie etwas Mathe darin einbeziehen: D – prerak