viernes, 7 de marzo de 2014

BroadcastReceiver en Android

    Un BroadcastReceiver tiene como finalidad indentificar eventos globales que pasan dentro del sistema operativo Android, por ejemplo: recibir un SMS, identificar una llamada entrante, el estado de la bateria, identificar si se cambia de tarjeta SIM... etc. en resumen cuando sucede alguna de las acciones mencionadas anteriormente el OS envia un "mensaje" a todas las Apps.

  Cuando sucede un envento global, el sistema operativo Android se encarga de crear el objeto bradcast y al finalizar la ejecucion de su codigo se destruye el objeto. Esto a diferencia de un servicio permite ahorrar bateria, cabe mencionar que un broadcast está diseñado solo para acciones que requieren poco codigo.


Para recordar:

1. Tienes que registrar el boadcast en AndroidManifest.xml y el sistema se encarga de desencadenarlo y gestionarlo.

<reciver android:name=".NombreClaseBroadcastReciver">
<intent-filter>
<action android:name="android.     accion que se desea controlar      ">
</intent-filter>
</reciver>

2.  Se puede registrar en tiempo de ejecución a través del metodo "registerReceiver" de la clase "Context".

3.  Carece de interfaz  de usuario.


El codigo se ejecuta en el metodo "onReceive".


EJEMPLO :

public class SMS extends BroadcastReceiver {

@Override
public void onReceive(Context context, Intent intent) {

/*
* las acciones se guardan en el parametro "intent"
*/
if(intent.getAction().equals("android.provider.Telephony.SMS_RECEIVED")){
/*
* accion a realizar en caso de recibir un SMS
*/

}
}

}


Que no se te olvide pedir los permisos para recibir SMS
<uses-permission android:name="android.permission.RECEIVE_SMS"/>


























No hay comentarios:

Publicar un comentario