Cuando programamos una app, necesitamos gestionar diferentes eventos que suceden durante su ejecución.
Por ejemplo, si la memoria del dispositivo es baja, tendríamos que avisar al usuario y posteriormente cerrar la app (en el caso de que tengamos una base de datos abierta, para evitar el cierre inesperado de la misma)
Otro suceso que necesitamos conocer, es saber cuando nuestra app se ejecuta en background, ya que si esto sucede y estamos utilizando el GPS, éste último dejaría de actualizar las coordenadas.
También nos interesa saber cuando el usuario cierra la app, ya que deberíamos cerrar en ese momento las bases de datos abiertas.
Para solucionar este tema Delphi nos ofrece una serie de procedimientos para controlarlo, que están en la unit FMX.Platform.TApplicationEvent.
TApplicationEvent = (FinishedLaunching, BecameActive, WillBecomeInactive, EnteredBackground, WillBecomeForeground, WillTerminate, LowMemory, TimeChange, OpenURL);
Para utilizarlo creamos en primer lugar una variable global llamada AppEventSvc
var
AppEventSvc: IFMXApplicationEventService;
En el oncreate del Form escribimos lo siguiente:
if TPlatformServices.Current.SupportsPlatformService(IFMXApplicationEventService, IInterface(AppEventSvc)) then
AppEventSvc.SetApplicationEventHandler(AppEvent);
y a continuación escribimos el procedimiento que va a manejar los eventos:
function TForm1.AppEvent(AAppEvent: TApplicationEvent; AContext: TObject): Boolean;
begin
Result := True;
case AAppEvent of
TApplicationEvent.WillBecomeInactive:
//procedimiento que se ejecuta cuando la app este inactiva
;
TApplicationEvent.EnteredBackground:
//procedimiento que se ejecuta cuando la app se ejecute en background ;
TApplicationEvent.WillTerminate:
//procedimiento que se ejecuta cuando la app se va a cerrar ;
end;
end;
Tienen mas información el el docwiki de Embarcadero
No hay comentarios:
Publicar un comentario