Delphi 10 Seattle的Android应用程序中使用参数启动服务

2022-12-01 09:15:36 作者:admin

本文整理自网络,侵删。

 现在,您可以使用Delphi 10 Seattle的Android应用程序创建服务。
可以使用“ TLocalServiceConnection.StartService(服务名称);”启动服务。很简单
但是,有时您想使用信息启动服务。似乎没有这种方便的功能。
因此,创建自己的Intent并使用putExtra方法传递信息。准备一个这样的函数:
function CreateIntent(const AServiceName: string; I: Integer; S: string): JIntent;var  ServiceName: string;begin  Result := TJIntent.Create;  ServiceName := AServiceName;  if not ServiceName.StartsWith('com.embarcadero.services.') then    ServiceName := 'com.embarcadero.services.' + ServiceName;  Result.setClassName(TAndroidHelper.Context.getPackageName(), TAndroidHelper.StringToJString(ServiceName));  Result.putExtra(TAndroidHelper.StringToJString('Int'), I);  Result.putExtra(TAndroidHelper.StringToJString('Str'), TAndroidHelper.StringToJString(S));end;像这样启动Sender。
procedure TForm1.Button1Click(Sender: TObject);var  Intent: JIntent;begin  Intent := CreateIntent(SERVICE_NAME, 987, '测试');  TAndroidHelper.Activity.startService(Intent);end;在服务端,它接收OnStartCommand事件中发送的参数。
function TAndroidServiceDM.AndroidServiceStartCommand(const Sender: TObject;  const Intent: JIntent; Flags, StartId: Integer): Integer;var  Int: Integer;  Str: string;begin  Int := Intent.getIntExtra(TAndroidHelper.StringToJString('Int'), -1);  Str := TAndroidHelper.JStringToString    (Intent.getStringExtra(TAndroidHelper.StringToJString('Str')));
  //处理
  Result := TJService.JavaClass.START_STICKY;end;

相关阅读 >>

Delphi asc转换成unicode

Delphi 获取内网所有ip地址

Delphi 字节数转换为kb或mb字符串

Delphi简单读取网上的文本文件

Delphi xe实现android 添加图片资源到应用并使用它

Delphi firemonkey 图片显示拉伸不变形

Delphi 语言字符集

Delphi得到cpu的序列号

Delphi 学习 sql 语句 - select(8): 分组条件

Delphi 删除确认对话框

更多相关阅读请进入《Delphi》频道 >>



在线咨询 拨打电话