German StartServiceAt: Service soll beim Aufruf starten und dann alle x Minuten

cmweb

Active Member
Licensed User
Longtime User
Hi allerseits,

ich verwende in einem Service folgende Zeile, um den Service alle 30 Minuten zu starten:

StartServiceAt("", DateTime.Now + 1800 * DateTime.TicksPerSecond, True)

Der Service aktualisiert dann ein Widget.

Was mich irritiert:

Wird das Widget neu erzeugt, startet der Service (in Service_Create des Widget Moduls wird StartService("meinservice") aufgerufen).

Anschließend wird der Service alle 30 Minuten ausgeführt.

Wird allerdings die App aktualisiert (neues Update), dann wird der Service *nicht* gestartet, sondern erst nach x Minuten, sobald eben StartServiceAt wieder greift...

Lässt es sich irgendwie hinbekommen, dass der Service in diesem Falle auf jeden Fall neu startet?

Herzliche Grüße

Carsten
 

corwin42

Expert
Licensed User
Longtime User
Sollte normalerweise funktionieren.

Auch hier: Ohne Sourcecode oder zumindest den relevanten Teil daraus kann man nicht vernünftig helfen. Hier bräuchte man die Service_Create und Service_Start Subs
 

cmweb

Active Member
Licensed User
Longtime User
Hi,

aber gerne doch:

hier die beiden Subs aus dem Service Modul:

B4X:
Sub Service_Create
   StartService("")
End Sub

Sub Service_Start (StartingIntent As Intent)
   letztenews.initialize
   latestnews.initialize
   Main.newsurl.initialize
   n.Initialize
   i = 0
   b4a = "http://www.xyz.com/rss.xml"
   HttpUtils.CallbackActivity = "grabservice" 'Current activity name.
   HttpUtils.CallbackJobDoneSub = "JobDone"
    HttpUtils.Download("Job2", b4a)
   StartServiceAt("", DateTime.Now + 1800 * DateTime.TicksPerSecond, True)
End Sub

Und hier die beiden aus dem Widget Modul:

B4X:
Sub Service_Create
   rv = ConfigureHomeWidget("newswidget.bal", "rv", 0, "News")
   StartService("grabservice")
End Sub

Sub Service_Start (StartingIntent As Intent)
   If rv.HandleWidgetEvents(StartingIntent) Then Return
End Sub

Herzliche Grüße

Carsten
 
Last edited:

corwin42

Expert
Licensed User
Longtime User
Hast Du denn noch ein Widget auf dem Homescreen beim Update? Irgendwer muss Deinen Service ja starten. Das würde auf jeden Fall das Widget machen, wenn es auf dem Homescreen platziert ist. Wenn kein Widget da, dann wird auch Dein Service nicht gestartet.
 

cmweb

Active Member
Licensed User
Longtime User
Hi,

Hast Du denn noch ein Widget auf dem Homescreen beim Update? Irgendwer muss Deinen Service ja starten. Das würde auf jeden Fall das Widget machen, wenn es auf dem Homescreen platziert ist. Wenn kein Widget da, dann wird auch Dein Service nicht gestartet.
Yep, das Widget ist da.

Das Widget ist allerdings nach dem Update dann leer, bis der StartServiceAt greift und der Service dem Widget wieder Inhalte verpasst...

Herzliche Grüße

Carsten
 

cmweb

Active Member
Licensed User
Longtime User
Ich gebe mal Entwarnung...

Es scheint so zu sein, dass das Widget kurze Zeit nach dem Update doch aktualisiert wird, unabhängig vom Greifen des StartServiceAt...

Ich hätte mich wohl etwas gedulden müssen...

Herzliche Grüße

Carsten
 
Top