Das Beispiel "TTask from the Parallel Programming Library" ist ja nicht Android-spezifisch, sondern eher allgemein auf Windows gemünzt.
Es ist so, dass eine Funktion im Hintergrund noch eine Zeit weiter ausgeführt wird, bevor Android/Apple doese wirklich hart killen.
Das ist mehr für Aufräumarbeiten gedacht, bevor die App schliest, aber nicht zur permanenten Hintergrundverarbeitung.
So einfach ist das bei den Mobilen nicht mehr.
Vielleicht hakt es beim Sleep, was Android negativ aufstößt, Du könntest mal folgendes stattdessen versuchen, bei dem der Task aktiv bleibt.
Delphi-Quellcode:
Uses
...
System.DateUtils
...
procedure TForm1.Button1Click(Sender: TObject);
var
aTask: ITask;
begin
aTask := TTask.Create(
procedure
var
LDelay : TDateTime;
LCount : Int64;
begin
LDelay := Now;
// sleep (3000); // 3 seconds
LCount := 0;
while MilliSecondsBetween( Now, LDelay ) < 5000 do
begin
//Loope brutalst hier herum, zähle mal zum Spass
Inc( LCount );
end;
TThread.Synchronize(TThread.Current,
procedure
begin
ShowMessage ('Hello ' + LCount.ToString );
end);
end);
aTask.Start;
end;