以下代码能监控到以下几个事件:
FinishedLaunching
BecameActive
WillBecomeInactive
EnteredBackground
WillBecomeForeground
WillTerminate
LowMemory
TimeChange
OpenURL
unit Unit11; interface uses System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.Layouts, FMX.Memo, FMX.Platform, FMX.StdCtrls; type TForm11 = class(TForm) Memo1: TMemo; ToolBar1: TToolBar; Label1: TLabel; procedure FormCreate(Sender: TObject); private procedure Log(s: string); public function HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; end; var Form11: TForm11; implementation {$R *.fmx} { TForm11 } procedure TForm11.FormCreate(Sender: TObject); var aFMXApplicationEventService: IFMXApplicationEventService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(aFMXApplicationEventService)) then aFMXApplicationEventService.SetApplicationEventHandler(HandleAppEvent) else Log('Application Event Service is not supported.'); end; function TForm11.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; begin case AAppEvent of aeFinishedLaunching: Log('Finished Launching'); aeBecameActive: Log('Became Active'); aeWillBecomeInactive: Log('Will Become Inactive'); aeEnteredBackground: Log('Entered Background'); aeWillBecomeForeground: Log('Will Become Foreground'); aeWillTerminate: Log('Will Terminate'); aeLowMemory: Log('Low Memory'); aeTimeChange: Log('Time Change'); aeOpenURL: Log('Open URL'); end; Result := True; end; procedure TForm11.Log(s: string); begin Memo1.Lines.Add(TimeToStr(Now) + ': ' + s); end; end.