Hallo,
hat jemand von euch schon mal einen
IntentService für Android mit Delphi umgesetzt? Ich laufe da in Fehler rein...
Ich habe ein "Intent Remote Service", wie das bei Delphi heißt, in einem Testprojekt unter 10.1 Berlin und 10.2 Tokyo angelegt und in einer Testapp in Delphi getestet. Der Service macht nichts anderes, als in den Events "AndroidIntentServiceCreate", "AndroidIntentServiceDestroy" und "AndroidIntentServiceHandleIntent" ein Logeintrag in das Logcat zu schreiben, die Testapp macht nichts anderes als den Service über einen Button zu starten.
Das Verhalten ist, dass zwar das Create-Ereignis vom Service aufgerufen wird, aber nicht mehr das HandleIntent & Destroy-Ereignis. Der Service bleibt im Hintergrund laufen. Weitere Aufrufe laufen ins leere. Das liegt daran, dass auf Java-Ebene das "onStartCommand" von Embarcadero überschrieben wird, aber der Aufruf nicht behandelt wird, und auch kein "super" der Elternklasse aufgerufen wird. Die Androiddokumentation sagt auch ganz klar:
Zitat:
You should not override this method for your IntentService. Instead, override onHandleIntent(Intent), which the system calls when the IntentService receives a start request.
(Quelle)
Also habe ich die Methode onStartCommand kurzerhand im *.template.java auskommentiert / super aufgerufen. Jetzt werden alle drei Events aufgerufen, ABER beim Beenden des Services gibt es ein SEGFAULT 11 in einem nicht debugbaren Stack.
Ich frage mich, mache ich was falsch? Hat jemand von euch einen IntentService schon mal erfolgreich mit Delphi implementiert? Ich finde da so wenig dazu!
Viele Grüße
Dominik
Edit: Ich habe mal einen Bugreport ausgefüllt:
https://quality.embarcadero.com/browse/RSP-18015