JavascriptProva

mercoledì 8 giugno 2016

Ripasso dei BroadcastReceiver e del sendBroadcast di un Intent.

Forza, creiamo un Broadcast e un Broadcast receiver...

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