Evento Hibernate en Windows Mobile 5.0

Hace poco leí un post en el blog de Windows Mobile acerca del manejo de situaciones de pocos recursos de memoria por parte de los dispositivos PocketPC y SmartPhone. El post me hizo recordar varias preguntas sobre estos temas que me han formulado durante algunas charlas y cursos sobre desarrollo en Compact Framework, en concreto se trataba del manejo del evento Hibernate.

La shell de Windows Mobile 5.0 chequea cada cierto tiempo ( los valores apróximados son de 5 segundos para PocketPC y de 30 para SmartPhone ) el estado de la memoria del dispositivo. En el momento en que el estado del dispositivo detecta que existe un nivel bajo de recursos de memoria, establecido por los OEM ,lanza el evento Hibernate a las aplicaciones válidas ( ver nota ) en ejecución.

Realmente el evento de Hibernate  no es más que lanzar el mensaje WM_HIBERNATE, cuando una aplicación recibe este evento debería liberar los recursos todos los recursos que pueda con el fin de aumentar la memoria disponible para el dispositivo. Si en el siguiente chequeo de la Shell aún se detecta que la cantidad de memoria disponible aún está por debajo de los umbrales fijados, se lanza el mensaje WM_CLOSE a las aplicaciones usadas ‘menos frequentemente’.

Nota:

Se consideran aplicaciones válidas para lanzar el evento de Hibernate a aquellas que no están en ‘foreground’ y a las que no tengan el estilo WS_EX_TOOLWINDOW o WS_EX_NOACTIVATE.

 

 

 

A continuación se muestra como manejar el evento de Hibernate en Compact Framework 2.0, para ello lo primero que debemos hacer es agregar la referencia al ensamblado Microsoft.WindowsCE.Forms.

   18         public void ManageHibernate()

   19         {

   20             Microsoft.WindowsCE.Forms.MobileDevice.Hibernate += new EventHandler(MobileDevice_Hibernate);

   21         }

   22 

   23         void MobileDevice_Hibernate(object sender, EventArgs e)

   24         {

   25             //

   26             //TODO: Liberar la mayor cantidad de recursos posibles en este punto

   27             //

   28         }

 

 

 

 

 

 

Saludos

Unai Zorrilla Castro

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *