Si comincia con il tipo BroadcastReceiver:
BroadcastReceiver receiver=new BroadcastReceiver(){
}
...che richiede automaticamente di inserire i metodi non implementati (si tratta di una classe astratta)
BroadcastReceiver receiver=new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
// TODO Auto-generated method stub
}
};
Adesso inserisco il codice della "risposta" al ricevimento dell'intent "broadcastato", magari un semplice Toast:
BroadcastReceiver receiver=new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(getApplicationContext(), "ciao ciccio", Toast.LENGTH_LONG).show();
}
};
Bene.Ora devo definire il filtro e registrarlo, ossia definire a quale chiamata risponde e poi registrarlo.
Il filtro è un tipo IntentFilter e la "chiamata", ossia action, si definisce mediante il metodo addAction di IntentFilter.
BroadcastReceiver receiver=new BroadcastReceiver(){
@Override
public void onReceive(Context context, Intent intent) {
Toast.makeText(getApplicationContext(), "ciao ciccio", Toast.LENGTH_LONG).show();
}
};
IntentFilter filtro = new IntentFilter();
filtro.addAction("Saluta Ciccio");
registerReceiver(receiver,filtro);
il tutto compreso nell'ambito del metodo onCreate.Ora lo devo chiamare...
Per fare una cosa simpatica, lo dovrei chiamare da un'altra App...
Creata:
Intent intent=new Intent();
intent.setAction("Saluta Ciccio");
sendBroadcast(intent);
...e funziona.
Nessun commento:
Posta un commento