gpt4 book ai didi

android - Delphi 10 Seattle Update1 如何停止主机应用程序的服务

转载 作者:行者123 更新时间:2023-11-29 20:06:58 27 4
gpt4 key购买 nike

我使用 Delphi 10 Seattle update1,我有一个从主机应用程序启动的 android 服务,但我不知道如何从主机应用程序停止该服务。谁能告诉我,好吗?

最佳答案

您正在使用 TLocalServiceConnection.StartService()方法。 Embarcadero 没有提供相应的 TLocalServiceConnection.StopService()方法,因此您必须调用 Android 的 Context.stopService() 直接方法。

这是 TLocalServiceConnection.startService() 的源代码来自 $(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() :

var
LIntent: JIntent;
begin
LIntent := TJIntent.Create;
LIntent.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString('com.embarcadero.services.LocationService'));
TAndroidHelper.Activity.stopService(LIntent);
end;

关于android - Delphi 10 Seattle Update1 如何停止主机应用程序的服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35527746/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com