我使用Delphi 10 Seattle update1,我有一个Android服务,我从主机应用程序开始,但我不知道如何从主机应用程序停止服务。有人可以告诉我吗?
答案 0 :(得分:2)
您正在使用该服务启动该服务
TLocalServiceConnection.StartService()
方法。 Embarcadero不提供相应的TLocalServiceConnection.StopService()
方法,因此您必须直接调用Android Context.stopService()
方法。
以下是来自TLocalServiceConnection.startService()
的{{1}}的源代码:
$(BDS)\source\rtl\android\System.Android.Service.pas
您可以将class procedure TLocalServiceConnection.StartService(const AServiceName: string);
var
LIntent: JIntent;
LService: string;
begin
LIntent := TJIntent.Create;
LService := AServiceName;
if not LService.StartsWith('com.embarcadero.services.') then
LService := 'com.embarcadero.services.' + LService;
LIntent.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString(LService));
TAndroidHelper.Activity.startService(LIntent);
end;
替换为TAndroidHelper.Activity.startService()
:
TAndroidHelper.Activity.stopService()