Programación Android, Service

Un Service, o servicio, es un componente que realiza una tarea en background, sin que exista interfaz gráfica que interactúe con el usuario, y por lo tanto no tiene que cumplir con el ciclo de vida de las aplicaciones.

Generalmente un servicio se va a crear para realizar una actividad repetitiva, o que necesita realizar operaciones que necesitan bastante tiempo, como podría ser una descarga de un archivo, sincronizar datos de la apliación, etc.

Android ya nos ofrece el uso de diferentes servicios del sistema, a través de clases Manager específicas, a las que se accede a través del método getSystemService(String name), por ejemplo:

AlarmManager manager = (AlarmManager) getSystemService(String name);

Hay que tener en cuenta que los servicios, como cualquier otro objeto de la aplicación, corren sobre el proceso que lo ha creado (a menos que se indique lo contrario), y que no es un nuevo hilo. Esto quiere decir que si necesitamos que el servicio realice una acción con mucha carga de trabajo o que pueda bloquear el sistema, tendremos que crear un nuevo hilo dentro de nuestro servicio para realizar la tarea y evitar así los ANRs (Application Not Responding errors). Para más información consultar Processes and Threads.

Un servicio realiza dos tareas muy sencillas:
Leer más…

Programación Android, ciclo de vida de una app

Creación de una actividad

Las actividades en Android son clases públicas que representan cada una de las pantallas de nuestra aplicación y que heredan de la clase base android.app.Activity mediante la palabra reservada extends.
Cuando se crea la actividad en el entorno Eclipse, se crea por defecto el método onCreate(). Toda actividad sobrescribe este método, que es el punto inicial del ciclo de vida de una actividad, y es invocado cuando la actividad se inicia. Además, la mayoría de las actividades también deben implementar el método onPause(), donde se guardan datos y el estado antes de que la actividad deje de ser visible. El estado de la actividad se almacena en un objeto de la clase Bundle, que contiene el estado anterior de la actividad en caso de que haya sido suspendida.
Según el ciclo de vida de una actividad, después de iniciar una actividad se puede pausar o detener de forma momentánea si el usuario está realizando otras funciones en el teléfono. si esto ocurre, la actividad deberá iniciarse nuevamente, y es entonces cuando la información de este Bundle es útil.

Ciclo de vida de las actividades

Las aplicaciones Android funcionan con un ciclo de vida controlado por el propio sistema operativo. Este ciclo de vida depende de la situación en que se encuentre en cada momento la aplicación. Desde que se crea hasta que se destruye, sus actividades (Activity) pueden encontrarse en distintos estados. Se considera de interés para cualquier proyecto conocer los ciclos de vida, ya que deberemos programar los métodos necesarios para que nuestra aplicación funcione correctamente.
Ciclo de Vida Android

Leer más…