miércoles, 8 de enero de 2014

Ciclo de vida de una actividad en Android

Cuando se lanza una actividad en android implica que la actividad anterior sea parada temporalmente. Esto no significa que la anterior actividad sea destruida sino que simplemente pierde el foco y se puede recuperar al volver a ella (botón back). Las  actividades solo son destruidas cuando el sistema así lo decida para resolver problemas de memoria. La preocupación del programador debe de centrarse en que la aplicación esté disponible cuando el usuario pulse el botón volver. La práctica más habitual es guardar el estado de la aplicación cuando ésta pierda el foco y recuperar su estado cuando vuelva a recuperar el foco.


Una actividad puede pasar por 3 estados diferentes:


  • Activa: la pantalla o actividad se encuentra visible por el usuario.

  • Pausada: la actividad ha perdido el foco pero sigue visible total o parcialmente por el usuario. Un ejemplo sería una ventana de diálogo que contiene el foco pero que está ligada a la actividad principal.

  • Parada: la actividad no está visible.

El ciclo de vida de una actividad contiene los siguientes métodos:


  • onCreate: se invoca cuando la actividad se crea por primera vez. Es aquí donde deberemos inicializar los datos que contendrá así como sus vistas. De esta manera es importante sobreescribir este método cada vez que definamos una actividad. El método recibe un parámetro de tipo Bundle. El valor de este parámetro será nulo si se ejecuta por primera vez pero en cambio contendrá la información suficiente para restaurar la actividad en caso de recuperación.

  • onRestart: se llama a este método cuando la actividad había sido detenida previamente pero se va a volver a visualizar.

  • onStart: este método se ejecuta cuando la actividad va a ser visualizada.

  • onResume: este método se ejecutará siempre que la aplicación este preparada para interactuar con el usuario. Este es el lugar idóneo para inicializar datos.

  • onPause: se invoca cuando la actividad va a perder el foco. Podemos ver este método como un aviso de que la pantalla va a dejar de ser visible y por tanto es un lugar idóneo para guardar el estado de la actividad.

  • onStop: se llama a este método cuando la actividad ha sido ocultada por completo.

  • onDestroy: método por el que pasa cuando la actividad va a ser destruida por completo.


Ciclo de vida de una actividad en Android

Handler axd funciona correctamente en local pero no funciona en el servidor

Tengo una librería MSCaptcha que funciona correctamente en local pero al subir al servidor no funciona correctamente.


El problema surge de que IIS7 introdujo dos condiciones previas denominadas “integratedMode” y “classicMode“. Un handler que tiene una precondition “integratedMode“ asociado a él sólo se puede cargar en un grupo de aplicaciones que tiene el “integratedMode“ establecido en el conjunto de propiedades en la ApplicationPool. Handlers con la precondition “classicMode“ sólo se cargarán en Grupos de aplicaciones que tienen la propiedad integratedMode establecida en falso.


En mi servidor local el pool de aplicaciones está en modo integrado con lo que la librería MSCaptcha funciona correctament pero en el servidor de producción está en modo clásico.


Para solucionarlo sin tener que cambiar configuraciones de servidor se puede establecer en el web.config una directiva para que el handler cargue con la configuración que decidamos.


En mi caso particular será:




<add name="MSCaptcha" verb="GET" path="CaptchaImage.axd" type="MSCaptcha.CaptchaImageHandler, MSCaptcha" preCondition="integratedMode"/>


De está forma he logrado que mi captcha se visualiza en el servidor.



Handler axd funciona correctamente en local pero no funciona en el servidor

Leer un documento XML como recurso en c#

Este post pretende explicar como leer un documento XML como recurso en c#


Disponer de un documento XML en los recursos de tu proyecto .Net es útil si no lo quieres hacer visible en el despliegue de la aplicación.


leer recurso xml visual studioPuedes cargar dicho documento mediante las siguientes líneas:




XmlDocument doc= new XmlDocument();
doc.LoadXml(Properties.Resources.XMLPreguntas);



Leer un documento XML como recurso en c#

Mostrar números de línea en visual studio

Este post indica la manera de mostrar números de línea en visual studio.


Por defecto en una instalación nueva de visual studio no se visualizan los números de línea en el editor.


sin numeros de linea visual studio


Para mostrarlos solo deberemos ir a la opción de menú “herramientas” (tools) situado en el menú superior y seleccionar “opciones” (options).


opciones



Se abrirá una ventana con todas las opciones. En el árbol de la izquierda elegiremos “Editor de texto” (Text Editor) y del desplegable seleccionaremos “Todos los lenguajes” (All Languages).


Una vez dentro en la sección display activaremos el check con la propiedad “Números de línea”.


numeros de linea visual studio 2



Ahora tendremos visibles los números de línea para todos los archivos que abramos con visual studio.


numeros de linea visual studio 3




No se puede cargar el archivo o ensamblado System.Web.Extensions

Error al compilar: No se puede cargar el archivo o ensamblado System.Web.Extensions Version=1.0.61025.0, Culture=neutral… El sistema no puede encontrar el archivo especificado.


Error system.web.extensions


La causa de este error es que no se puede encontrar la referencia al ensamblado indicado. Es muy posible que el equipo o servidor no tenga instalado ASP.NET AJAX 1.0.


Una vez instalado, las librerías quedarán directamente registradas en la GAC con lo que la siguiente compilación del proyecto dejará de existir el problema.


Para la instalación de ASP.NET AJAX 1.0 es necesario tener instalado:



No se puede cargar el archivo o ensamblado System.Web.Extensions

martes, 7 de enero de 2014

Qué son las actividades en Android

En este post intentaremos explicar qué son las actividades en Android.


Una actividad es una pantalla que en algún momento podrá ser visualizada por el usuario. Una aplicación en android tendrá entre 1 a N actividades.


Es en una actividad (pantalla) donde se colocarán los diferentes componentes como son los controles: caja de texto, botón, cuadros de selección (checkbox), listas desplegables…


Cuando creamos un nuevo proyecto android desde eclipse entre otras cosas tendremos la opción de indicarle cual será el nombre de la actividad principal (pantalla de inicio) desde la cual se arrancará nuestra aplicación.


Cada una de las pantallas que creemos deberán extender a la clase Activity. Si nos fijamos al extender esta clase también podremos sobreescribir algunos de sus métodos entre ellos está el siguiente:


  • OnCreate, se ejecutará al iniciar la aplicación. En este método se suele iniciar el layout o clase que contiene el diseño de la pantalla.




setContentView(R.layout.mi_actividad);




 En posteriores posts hablaremos del ciclo de vida de las actividades.




Qué son las actividades en Android

Menú desplegable en WordPress

Básicamente existen dos tipos de menú desplegable en WordPress:


  • Elemento de menú padre que contiene un enlace a una página, url o categoría

  • Elemento de menú padre que no contiene ningún enlace, es decir, que únicamente sirve para desplegar o hacer visibles sus elementos inferiores (hijos).

Para crear este último elemento padre es tan fácil como crear un elemento de menú cuya url sea #:


menu-desplegable-wordpress


Una vez añadido al menú tan solo quedará agregarles los elementos hijos para agruparlos dentro de él.



Menú desplegable en WordPress