2016-04-02 4 views
2

Ich habe eine TimerTask, die täglich einige Tabellen zu bestimmten Zeiten aktualisiert (nicht eine Aufgabe pro Tag, verschiedene Aufgaben zu unterschiedlichen Zeiten in einer Tag). Ich bekomme ein paar Zeitperioden von einer Datenbank und überprüfe, ob die aktuelle Zeit gleich einer der Zeiten in der Datenbank ist, wenn der run() von TimerTask aufgerufen wird und die entsprechende Aufgabe für die jeweilige Zeit (Zeit von der Datenbank gleich der aktuellen Zeit) ausführt)Die tägliche Ausführung einer Aufgabe mit TimerTask funktioniert nicht für den nächsten Tag (mit anderen Problemen)

Ich denke, es funktioniert nicht für den nächsten Tag, weil ich die Zeit (die ich aus der Datenbank erhalte) für den Timer, wenn der Dienst beginnt. Am nächsten Tag, an dem der Timer die Aufgabe ausführen soll und mit der aktuellen Uhrzeit überprüft, überprüft er die Uhrzeit des Vortags (der Tagesservice wird gestartet und die Zeit wird auf TimerTask gesetzt) ​​und erledigt die Aufgabe nicht. Ich sollte die Service jeden Tag starten, um die Zeit einzustellen (die von der Datenbank erhalten wird, um mit der aktuellen Zeit zu überprüfen).

Wie starte ich den Dienst jeden Tag zu einer bestimmten Zeit, so dass die Zeit, die mit der aktuellen Uhrzeit überprüft werden soll, täglich eingestellt wird.

Ich kann versuchen, die Aufgaben jeden Tag 24 Stunden ab dem Tag Service zu planen, aber manchmal muss ich das Startdatum ändern und dafür sollte der Dienst neu gestartet werden und ich weiß nicht, ob ein Dienst ausgeführt wird für 24 Stunden.

+0

Können Sie Snippets Ihres Codes teilen? – Learner

+0

@DROY. Entschuldigung, wir dürfen nicht ... aber danke, dass ich eine Lösung gefunden habe. – Nobody

Antwort

0

Sie sollten hierfür Alarmanager verwenden. Der Alarm Manager ist für Fälle vorgesehen, in denen Sie Ihren Anwendungscode zu einem bestimmten Zeitpunkt ausführen möchten, auch wenn Ihre Anwendung gerade nicht ausgeführt wird.

+0

Ich habe bereits zu viel Arbeit daran getan, um jetzt zu ändern..aber ich fand eine Lösung .. – Nobody

Verwandte Themen