lunes, 29 de abril de 2013

Android Manifest (IV) - etiqueta activity

En la parte III del estudio del archivo manifest.xml, vimos la etiqueta 〈application〉 y terminamos referenciando a la ayuda para ampliar información.

Pues bien, en la ayuda pudimos ver que la etiqueta 〈application〉 podía contener las siguientes subetiquetas: 
  • 〈activity〉
  • activity-alias
  • 〈service〉
  • 〈receiver〉
  • 〈uses-library〉     
  En esta entrada nos ocuparemos de la

Etiqueta 〈activity〉

Cuando habíamos creado nuestro proyecto, si no le hemos dado otro nombre, se nos habrá creado una actividad principal llamada MainActivity.

Desde el mismo manifest.xml, en la pestaña Application, podemos configurar sus propiedades:



Estas modificaciones se trasladarán al fichero '.xml', dentro de la etiqueta <Activity>:


android:name especifica el nombre de la actividad. En el ejemplo ponemos todo el nombre completo, aunque podíamos haber puesto sólo .MainActivity ya que tenemos el nombre del package definido más como atributo del elemento manifest.

android:label también lo tenemos definido en la etiqueta Application. Concretamente, el contenido de este atributo aparecerá en la barra de título de la actividad si la tuviera. También se usará en el lanzador de la aplicación si definimos esta actividad como el punto de entrada de nuestra aplicación. En el ejemplo usamos app_name del archivo strings.xml, aunque podíamos haber usado un string puro entre comillas, P.ej: "Mi actividad". Si no lo definimos, se utilizará el label definido en la etiqueta <application>.

android:screenOrientation define la orientación de la aplicación - portrait o landscape (apaisado) -. Si no definimos este atributo, se usará el que el dispositivo tenga predeterminado, incluido el variable en función del acelerómetro. Cuando la pantalla cambia de orientación la actividad se destruye y eso en un juego, no queremos que suceda.


android:configChanges: En Android, el cambio de orientación o la aparición del teclado se considera un cambio de configuración, lo que hace que la pantalla se redibuje para adaptarse a los cambios. En este atributo definimos los eventos que queremos manejar nosotros con el fin de evitar que se destruya la actividad. Los diferentes efectos se separan con la barra vertical o Pipe ( | )

SubEtiqueta 〈intent-filter〉

Podemos ver como la etiqueta activity tiene una subetiqueta llamada <intent-filter>.


En Android no existe un único punto de entrada para nuestra aplicación. Podemos iniciarla a través de múltiples activities o services que pueden ser iniciados a partir de intents específicos que puede enviar el sistema u otra aplicación. Para decir a Android ante qué intent debe reaccionar y cómo, existe el <intent-filter>.

Si los palabros que acabo de utilizar te suenan a chino mandarín, a menos que seas chino pulsa aquí.
  • Con el elemento <action>, estamos indicando que esta activity va a ser un punto de entrada para nuestra aplicación. Sólo puede haber una  activity que reaccione a este intent.
  • Con elemento <category> le decimos a Android que queremos que esta activity sea añadida al lanzador de la aplicación. Pueden haber varias activities que reaccionen a este intent.
De esta manera Android sabe que al ser pulsado el icono de la aplicación, debe iniciar esta activity. 

Si no hubiéramos establecido el <intent-filter>, esta activity sólo se podría llamar desde dentro de la aplicación.

Fijémonos que ambos elementos sólo tienen el atributo name siendo su valor el nombre del intent.

Y hasta aquí esta entrada. Como siempre referenciaros al vídeo original de Jesús Conde, del que estoy tomando estas anotaciones.

No hay comentarios:

Publicar un comentario