Einzelnen Beitrag anzeigen

Benutzerbild von erich.wanker
erich.wanker

Registriert seit: 31. Jan 2008
Ort: im schönen Salzburger Land
460 Beiträge
 
Delphi XE4 Professional
 
#1

Android Service startet nicht

  Alt 14. Dez 2022, 14:02
Hallo,
Delphi 10.4.2

Ich hab ein bisserl mit der Demo rumgespielt und sie minimal verändert - seitdem startet der service nicht mehr

Demo: C:\Users\Public\Documents\Embarcadero\Studio\21.0\ Samples\Object Pascal\Multi-Device Samples\Device Sensors and Services\AndroidNotificationServiceDemo
  • Die NotificationApp habe ich nicht angerührt
  • Die NotificationService habe ich abgeändert mit:
- Neue procedure "starte_loop" - es soll kontinuierlich der rückgabewert einen php als Notification ausgegeben werden.

- bei LaunchNotification(nachricht:String) habe ich den string "Nachricht" hinzugefügt


Was ist da falsch?
Danke und liGrü
Erich


Delphi-Quellcode:
procedure TNotificationServiceDM.start_loop;
  var
    atask : Itask;
    H : TIdHTTP;
    SS : TStringStream;
    url : string;
    dummy : Boolean;
    Ergebnis:String;
  begin
    dummy := false;
    atask := Ttask.create(
      procedure( )

        begin

          REPEAT
          begin
            sleep( 30000 );
            url := ' mein server /test.php?a=2&b=3'; // Liefert echo "Ergebnis ist 6"
            H := TIdHTTP.create( nil );
            try
              SS := TStringStream.create;
              try
                H.Get( url, SS );
                Ergebnis := SS.DataString;
                LaunchNotification(Ergebnis);
              finally
                SS.Free;
              end;
            finally
              H.Free;
            end;

          end;
          UNTIL dummy = true;
        end );

    atask.Start;

  end;

function TNotificationServiceDM.AndroidServiceStartCommand(
  const Sender : TObject;
  const Intent : JIntent;
  Flags, StartId : Integer ) : Integer;

  begin

    start_loop;
    //LaunchNotification(Ergebnis);
    //JavaService.stopSelf;
    //Result := TJService.JavaClass.START_STICKY;

  end;

procedure TNotificationServiceDM.LaunchNotification(nachricht:String);
  var
    MyNotification : TNotification;

  begin

    MyNotification := NotificationCenter1.CreateNotification;
    try
      MyNotification.Name := 'ServiceNotification';
      MyNotification.Title := 'Android Service Notification';
      MyNotification.AlertBody := nachricht;
      MyNotification.FireDate := IncSecond( Now, 8 );
      NotificationCenter1.ScheduleNotification( MyNotification );
    finally
      MyNotification.Free;
    end;

  end;
Erich Wanker - for life:=1971 to lebensende do begin ..
O
/H\
/ \
  Mit Zitat antworten Zitat