Usuario:ManuelRomero/Android2/PrimerPrograma/Broadcast


 * Es otro componente de un desarrollo de android
 * Reciben notificaciones o eventos que ocurren en el sistema y reaccionan ante ellos
 * Esta notificación puede venir de otra aplicación externa que la envío o del entorno (por ejemplo entra una llamada)
 * No tienen interfaz asociada
 * Se implementa a partir de la clase BroadCastReceiver
 * Su ciclo de vida es muy corto, solo están activos mientras se ejecuta el método onReceive (Context, Intent), que es equivalente al onCreate(Bundle) de otros componentes.
 * El objeto Context nos pasa es estado actual, y el intent, nos permitirá lanzar el evento.

Hagamos un ejemplo
http://androideity.com/2011/11/01/broadcast-receivers-en-android/ public class BroadcastRecieverLlamadas extends BroadcastReceiver {     Bundle extras = intent.getExtras; String state = extras.getString(TelephonyManager.EXTRA_STATE); if (state.equals(TelephonyManager.EXTRA_STATE_RINGING)) { String phoneNumber = extras.getString(TelephonyManager.EXTRA_INCOMING_NUMBER); ... }
 * En este caso vamos a simular que cuando llaman por telefono queremos registrar la llamada
 * Creamos una clase que herede de BroadCastReceiver
 * Ahora lo que escribamos en el método onReceive es lo que se ejecutará cuando se reciba el evento
 * Para especificar el /los eventos aplicación responda en caso de que sea del sistema, hay que especificarlo en el -manifest con el atributo intent-filter
 * Con esto le decimos que nos notifique cuando entre una llamada
 * Por su puesto hay que dar permisos para que nuestra aplicación vea el estado del teléfono
 * Con esto cuando entre una llamada se ejecutará el método onReceiver de nuestro programa
 * Vamos a ver qué hacemos, el método onRecive tiene dos parámetros
 * El intent trae inforamción del evento que se ha generado
 * Con esta información creamos un objeto Bundle Con la información que trae el evento
 * Verificamos que haya información, en cuyo caso TelephoneManager.EXTRA_STATE nos da información de la llamada entrante
 * -Ahora verificamos que el teléfono está sonando, en cuyo caso visualizamos el número de teléfono de la llamada entrante

A continuación el código completo