问题描述
我正在处理 Firemonkey (Delphi 10.4) 的以下问题:当 Android 操作系统关闭而我的应用程序仍在运行时,它不会触发 OnCloseQuery、OnClose 和 OnDestroy 事件。有没有办法检测或拦截操作系统关闭事件?当我使用方形按钮终止应用程序时(即当我使用方形按钮显示最近打开的应用程序并以这种方式关闭应用程序)时,会出现同样的问题。
提前致谢。
解决方法
我终于从 TMS 客户那里找到了解决方案(Ken Randall "Randall_Ken" Active Customer。)
uses FMX.Platform;
procedure TMyForm.FormCreate(Sender: TObject);
var
AppEventSvc: IFMXApplicationEventService;
begin
if TPlatformServices.Current.SupportsPlatformService
(IFMXApplicationEventService,IInterface(AppEventSvc)) then
begin
AppEventSvc.SetApplicationEventHandler(AppEvent);
end;
end;
function TMyForm.AppEvent(AAppEvent: TApplicationEvent;
AContext: TObject): Boolean;
begin
if AAppEvent = TApplicationEvent.WillTerminate then
begin
// Do soomething
end;
Result := true;
end;