Subscribe Twitter Twitter

domingo, 8 de agosto de 2010

UIApplication

Toda aplicación del iphone tiene un objeto de tipo UIApplication el cual es el punto de entrada de la aplicación y se encargará de inicializar y de mostrar un UIWindow y cargar además en este UIWindow la primera vista a mostrar. Además este UIApplication debe encargarse de gestionar el ciclo de vida de la aplicación y para eso hace uso del UIApplicationDelegate. De todas maneras es el UIApplication el que recibe los eventos pero se gestionan mediante el delegado.

Los eventos que se manejan desde el UIApplicationDelegate son por ejemplo arrancar la aplicación , cerrar la aplicación o eventos como que entre una llamada mientras la aplicación se está ejecutando.

Vamos a detallar un poco más lo eventos que podemos manejar:

didChangeStatusBarFrame: El frame de la barra de estado ha cambiado.
willChangeStatusBarFrame: El frame de la barra de estado va a cambiar.

didChangeStatusBarOrientation: Cambia la orientación de la barra de estado
willChangeStatusBarOrientation:duration: La orientación de la barra de estado va a cambiar y el parámetro duration le indica cuanto va a durar la animación.

handleOpenURL: Le indica al delegado que quiere abrir una url.

applicationDidBecomeActive: Se ejecuta justo después de que la aplicación vuelva estar activa de nuevo. Por ejemplo te ha entrado una llamada y has terminado, la aplicación vuelve a estar activa y justo en ese momento se ejecuta este evento.

applicationDidFinishLaunching: Se ejecuta cuando la aplicación ha terminado de cargarse.

applicationDidReceiveMemoryWarning: Cuando recibe este mensaje es debido a que el SO le ha enviado este mensaje a la aplicación ya que se ha quedado el dispositivo sin memoria pero antes de cerrarla se le da una "oportunidad" de ejecutar este método para que se libere la memoria que se pueda de la app.

applicationSignificantTimeCharge: Se ha producido un cambio significativo en el tiempo durante la ejecución de tu aplicación.

applicationWillResignActive: Se ejecuta antes de que pase a inactiva por ejemplo te entra una llamada.

applicationWillTerminate: La aplicación se cierra.

applicationDidEnterBackground: La aplicación va a entrar en segundo plano pero si la aplicación no tiene implementado multitarea en este método deberías guardar los estados de la aplicación, liberar la memoria ya que se queda en "pausa" en segundo plano y cuando el usuario vuelve a entrar estará en el estado en el que se quedó pero cuando está en esta "pausa" si el SO necesita memoria la va a cerrar.

applicationWillEnterForeground: La aplicación vuelve a primer plano.


Nota: El UIapplicationDelegate de nuestra aplicación es el nombreAplicaciónAppDelegate, se generá automáticamente cuando creamos un nuevo proyecto (independientemente de la plantilla que usemos) y esa clase hereda de NSObject e implementa el protocolo UIApplicationDelegate.

Nota: Cuando hablamos de que se produce un evento o el delegado recibe un evento significa en realidad que se envía un mensaje concreto al delegado en función de lo que suceda y de esa manera ejecute el código correspondiente.

2 comentarios:

Pablo dijo...

Wow menudo salto de nivel no?... Aun no me queda muy claro como usar esto.

Noemí dijo...

Hola Pablo, esto tu no tienes que crearlo ni nada, cuando creas un proyecto desde cero(independientemente del tipo), xcode automáticamente te crea un UIApplication y el delegado correspondiente (cuyo nombre es tu app seguido de + AppDelegate, mira la primera nota). Ahí vienen los métodos que comentamos y en el caso de necesitar hacer uso de esos eventos meteremos nuestro código ahí.

un saludo
Noemí

Publicar un comentario