Managing mobile application life cycle events in Delphi
E’ facile comprendere che la gestione dello stato di attività delle applicazioni per dispositivi mobili (iOS / Android ) sia molto più prioritaria rispetto a una qualsiasi applicazione desktop o server che sia.
I motivi di questa sottile ma sostanziale differenza derivano da due fattori non trascurabili :
1° la privacy dell’utente
2° la gestione del consumo delle risorse del dispositivo
Con Delphi gestire lo stato dell’applicazione risulta molto semplice:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
uses FMX.Types, FMX.Platform; function TForm1.HandleAppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean; begin case AAppEvent of TApplicationEvent.FinishedLaunching: Log.d('Launched.'); TApplicationEvent.BecameActive: Log.d('Gained focus.'); TApplicationEvent.EnteredBackground: Log.d('Now running in background.'); TApplicationEvent.WillBecomeForeground: Log.d('Restoring from background.'); TApplicationEvent.WillBecomeInactive: Log.d('Going to lose focus.'); TApplicationEvent.WillTerminate: Log.d('Quitting the application.'); TApplicationEvent.LowMemory: Log.d('Device running out of memory.'); // iOS only TApplicationEvent.TimeChange: Log.d('Significant change in time.'); TApplicationEvent.OpenURL: Log.d('Request to open an URL.'); end; Result := True; end; procedure TForm11.FormCreate(Sender: TObject); var aFMXApplicationEventService: IFMXApplicationEventService; begin if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(aFMXApplicationEventService)) then aFMXApplicationEventService.SetApplicationEventHandler(HandleAppEvent) else Log.d('Application Event Service not supported.'); end; |