Professional Documents
Culture Documents
@eduardo_gpg
Ejemplo:
Una vez que nos encontremos en nuestra aplicacin ser necesario crear una nueva
clase con la cual controlaremos lo que debe ser ejecutado cuando el dispositivo
encienda.
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
http://developer.android.com/training/monitoring-device-state/manifest-
receivers.html
<receiver android:enabled="true"
android:name=".Monitor"
android:permission="android.permission.RECEIVE_BOOT_COMP
LETED">
</receiver>
Con esto indicamos a la aplicacin que cuando el dispositivo inicie se ejecute la clase
Monitor, que en este caso se encuentra dentro del paquete principal (Es por eso que
lleva el punto).
<intent-filter>
<action
android:name="android.intent.action.BOOT_COMPLETED"/>
<category
android:name="android.intent.category.DEFAULT" />
</intent-filter>
Estas nuevas lineas de cdigo especificamos que tipos de eventos son posibles
responder, en este caso de nuestro BroadcastReceiver.
http://developer.android.com/guide/topics/manifest/intent-filter-element.html
Fuera del bloque de Aplication y dentro del bloque Manifest colocamos la siguiente
lnea:
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED"
/>
Con la cual establecemos los permisos necesarios para este ejemplo, quedando nuestro
Manifest de esta forma:
</activity>
<receiver android:enabled="true"
android:name=".Monitor"
android:permission="android.permission.RECEIVE_BOOT_COMP
LETED">
<intent-filter>
<action
android:name="android.intent.action.BOOT_COMPLETED"/>
<category
android:name="android.intent.category.DEFAULT" />
</intent-filter>
</receiver>
</application>
<uses-permission
android:name="android.permission.RECEIVE_BOOT_COMPLETED"
/>
</manifest>
Con estas 3 nuevas lneas que acabamos de agregar nuestra aplicacin ya tiene la
posibilidad de ejecutar un Activity.
Con la primera lnea de cdigo indicamos que vamos a crear una objeto de tipo
Intent, Colocamos el contexto y la clase que deseamos que se ejecute.
En la segunda lnea mandamos a llamar al Activity, debido a que no estamos
dentro de un Activity para realizar esta tarea nos apoyamos del mtodo
addFlags de la clase Intent la cual nos provee una solucin.
Para finalizar la ltima lnea ejecuta nuestro Activity creado.
Extra:
Para poder mandar a llamar a un service fuera de un Activity es necesario crear una
Action, para ellos modificamos un poco ms en Manifest:
<service android:name=".ServicioDemo">
<intent-filter>
<action
android:name="ServicioCodigoFacilito"></action>
</intent-filter>
</service>
Tal como lo vimos en el post de Servicios (http://codigofacilito.com/articulos/crear-
un-servicio-en-android) es necesario declarar el Serivico en el manifest, pero ahora
agregamos un intent-filter a este bloque. Agregamos la accin a realizar, que en este
caso lo llamamos "ServicioCodigoFacilito".
Si se dan cuenta esta accin es la que se ejecuta en el mtodo setAction, es por eso
que debemos ser cuidadosos y colocar el mismo nombre.
Prueba: