Ich bin gerade dabei einen Wecker zu programmieren und habe mit dem Befehl StartServiceAt noch ein bischen Verständnisprobleme.
Mit dem Befehl StartServiceAt übergebe ich an ein Service Modul, dessen einzige Aufgabe es ist einen Ton abzuspielen. Anschließend wird in dem Service Modul mit einem erneuten Aufruf von StartservicAt der Alarm um 24 Std nach vorne gestellt.
Das funktioniert auch wunderbar. Allerdings funktioniert nichts mehr wie es soll, wenn das Handy ausgeschalten wurde und dann wieder eingeschalten. Dann spielt es den Ton nicht wie gewünscht zum eingestellten Zeitpunkt ab, sondern kurz nach dem Hochfahren des Betriebssystems.
Muss ich mit StartServiceAt irgendwas beachten was ich nicht getan habe?
Nach einem Reboot werden die Alarme nicht automatisch wieder restauriert. Ich vermute, Du hast Deinen Service auf "Start at boot" gestellt. Damit wird er einfach bei jedem Starten des Telefons aufgerufen und spielt den Alarm ab.
Du solltest die Alarmzeit immer in eine Datei schreiben. Im Service dann diese Datei einlesen, vergleichen, ob die Zeit schon erreicht ist und nur dann den Alarm losgehen lassen. Ansonsten nur die Alarmzeit mit StartServiceAt() neu setzen.
Jetzt funktionierts wunderbar mit dem Abspielen von Sounds.
Ich habe ich noch das Problem, dass ich gerne ein Bild mit einem Wecker anzeigen würde. Solange der Benutzer nicht auf den Wecker klickt, soll der Ton laufen.
Mit dem Service Modul kann ich aber keine Formen anzeigen. Nicht einmal eine Messagebox... Könnt ihr mir helfen?