German StartServiceAt

thewavemaster

Member
Licensed User
Longtime User
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?
 

thewavemaster

Member
Licensed User
Longtime User
...

Hier der Quälllltext

Sub Service_Start (StartingIntent As Intent)




Try

Dim Mediaplayer2 As MediaPlayer
Mediaplayer2.Initialize
Mediaplayer2.Load( File.DirAssets, "rooster.wav")

Catch
End Try

Try
Mediaplayer2.Play
Catch
End Try

alarmzeit = DateTime.Add(DateTime.Now,0,0,1)
StartServiceAt("",alarmzeit,True)




End Sub
 

corwin42

Expert
Licensed User
Longtime User
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.
 

thewavemaster

Member
Licensed User
Longtime User
...

Danke!

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?
 

corwin42

Expert
Licensed User
Longtime User
Mit dem Service Modul kann ich aber keine Formen anzeigen. Nicht einmal eine Messagebox... Könnt ihr mir helfen?

Du kannst aus dem Service Modul heraus mit StartActivity() eine beliebige Activity starten, die dann den Wecker anzeigt.
 
Top