我使用Delphi 12开发Android应用程序,并尝试在后台运行Service,以使用TCP套接字显示通知,从而接收来自服务器的频繁消息。但是,在关闭主流程应用程序后,该服务将被停用/关闭。
下面提到了启动服务的代码:
procedure TForm1.ButtonServiceStartClick(Sender: TObject);
var
ServiceIntent: JIntent;
begin
ServiceIntent := TJIntent.Create;
ServiceIntent.setClassName(TAndroidHelper.Context, StringToJString('com.embarcadero.services.MyService'));
TAndroidHelper.Context.startService(ServiceIntent);
end;
此外,我在中添加了以下服务信息
AndroidManifest.template.xml
:
<service android:enabled="true" android:exported="false" android:label="MyService"
android:process=":remote" android:name="com.embarcadero.services.MyService">
</service>
服务中的代码:
function TDM.AndroidServiceStartCommand(const Sender: TObject;
const Intent: JIntent; Flags, StartId: Integer): Integer;
begin
Result := TJService.JavaClass.START_STICKY;
end;
我试着用这个
Solution
,但无法编译。
并试图在Android中实现Sleep Start命令/运行线程,但Android服务仍在关闭。
是,我需要提到启动服务的不同标志,还是我需要添加额外的代码来一直运行服务,或者我们可以在服务被销毁后重新启动它,以及如何在销毁事件中处理代码?