Я пытаюсь сделать приложение с местной службой, с примером изDelphi XE10 Seattle Android Получить уведомление от службы
http://docwiki.embarcadero.com/RADStudio/Seattle/en/Creating_Android_Services
Но в моем случае, моя служба просто не будет срабатывать уведомления после запуска (и я не могу быть уверен, что служба работает). Есть ли способ убедиться, что моя служба запущена? С тех пор, как я попытался проверить на устройстве System - Apps - Запуск даже моего приложения нет в списке. Это как мое приложение просто умер (или сон) после того, как он потерял фокус/переключатель в другое приложение
Ниже мой простой сервис & код уведомления
function TAndroidServiceDM.AndroidServiceStartCommand(const Sender: TObject;
const Intent: JIntent; Flags, StartId: Integer): Integer;
var TheNotif: TNotification;
begin
TheNotif := Notif.CreateNotification;
try
TheNotif.Title := 'Notif Title';
TheNotif.Name := 'NotifServiceStart';
TheNotif.AlertBody := 'I''m alive!!!!';
TheNotif.FireDate := Now;
Notif.PresentNotification(TheNotif);
finally
TheNotif.Free;
end;
Result := TJService.JavaClass.START_STICKY;
end;
и это мой вызывающий код приложения
procedure TfmMain.FormCreate(Sender: TObject);
var FServiceConn: TLocalServiceConnection;
begin
FServiceConn := TLocalServiceConnection.Create;
FServiceConn.StartService('unMainServiceLocation');
FServiceConn.BindService('unMainServiceLocation');
end;
procedure TfmMain.NotifReceiveLocalNotification(Sender: TObject;
ANotification: TNotification);
begin
Text1.Text :=
'Title : ' + ANotification.Title + #13#10 +
'Name : ' + ANotification.Name + #13#10 +
'Alert : ' + ANotification.AlertBody ;
end;
Я попытался поместить кнопку в приложение и сделать то же самое (отправить уведомление из приложения), и когда я нажму кнопку, мой компонент Text1 отобразит правильную вещь, и уведомление появилось, но не при запуске моего приложения (должно начата службой). Название службы Предположительно, должно быть с тех пор, как я меняю имя службы, оно было принудительно остановлено (ошибка сегментации 11)
Просьба дать консультацию. Благодаря
Возможный дубликат [Как проверить, работает ли служба в Delphi 10 Seattle] (http://stackoverflow.com/questions/34262554/how-to-check-if-a-service-is-running-in -Delphi-10-сиэттл) – Machado