SlideShare a Scribd company logo
NOTIFICATION SERVICES 
ATTIVITA IN BACKGROUND SENZA UI
COSA SONO I NOTIFICATION SERVICES 
 Vengono utilizzati per esecuzioni di attività in background che non sono dotati di UI 
 Fornisce il meccanismo per per la notifica all’utente della disponibilitàà di determinati dati che 
non possono essere visualizzati direttamente in una activity. 
 La NS permette di notifdicare sullo status bar di android il completamento di una attività 
 Anche se è possibilie lanciare una Activity non è corretto farlo bisogna prima avvisare utente e 
poi lanciare l’activity se necessario.
 Un esempio di NS è l’arrivo di un SMS che viene notificao sulla status bar e delegato all’utente il 
lancio dell’activity necessaria alla sua visualizzzione. 
 Quando l’utente vuole vedere il dato trascina giu lo status bar e clicca sulla notifica lanciando 
l’Intent relativo.
CREAZIONE DI UNA NOTIFICATION 
 Le informazini vengono incapsulate in un oggetto ti tipo Notification del package android.app 
e dovrà specificare le seguenti informazioni: 
 Icona 
 Messaggi oda visualizzare 
 Intent da lanciare in caso di selezione 
 Oltre a queste informazioni standard ci sono altre informazioni opzionali 
 Messaggio stile ticker nella status bar 
 Suono di allert 
 Modalità vibrazione 
 Lampeggio led
CREAZIONE DI UNA NOTIFICATION 
 Alcune informazioni possono essere passate al costruttore della Notification 
Public Notification(in icon,CharSequence tickerText,long when) 
 When rappresenta l’istante della notifica e fa riferimento al click del dispositivo 
 le altre info possono essere settate attraverso il metodo specifico 
Public void setLatestEventInfo(Context context, CharSequence contentTitle, 
CharSequence contentText, PendingIntent contentIntent) 
 Il PendingIntent è in questo caso l’intent da lanciare alla selezione della notifica. 
 Attenzione!!! In android il ticker ovvero il testo specificato da visualizzare scurre dal basso verso 
l’altro
ESEMPIO CODICE LANCIO NOTIFICATION PASSO 1 
 Creiamo una Activity che si occupera di recuperare le informazioni e di mostrarle 
Bundle extras = getIntent().getExtras(); 
if (extras != null) { 
TextView textView = (TextView) findViewById(R.id.outputView); 
textView.setText(extras.getString("notificationType")); 
}
ESEMPIO CODICE LANCIO NOTIFICATION PASSO 2 
 Creiamo una variabile di class 
private NotificationManager notificationManager; 
private final static int VIBRATE_NOTIFICATION_ID = 3; 
 Quando creiamo l’activity principale creiamo il notificationManager 
notificationManager = (NotificationManager) 
getSystemService(Context.NOTIFICATION_SERVICE);
USIAMO IL METODO PER GESTIRE LA NOTIFICATION 
/* 
* Metodo di gestione di una notifica con vbrazione 
*/ 
public void vibrateNotification(View button) { 
// Creiamo la Notification 
Notification notification = new Notification(R.drawable.icon, 
"Vibrate Notification", System.currentTimeMillis()); 
long[] vibrateData = { 100, 100, 200, 200, 80, 80 }; 
notification.vibrate = vibrateData; 
// Impostiamo le altre informazioni tra cui l'Intent 
Intent intent = new Intent(this, NotificationActivity.class); 
intent.putExtra("notificationType", "Vibrate Notification"); 
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 
PendingIntent.FLAG_CANCEL_CURRENT); 
notification.setLatestEventInfo(this, "Vibrate Notification", 
"Vibrate Notification Extended", pIntent); 
// La lanciamo attraverso il Notification Manager 
notificationManager.notify(VIBRATE_NOTIFICATION_ID, notification); 
}
 Possiamo usare queste costanti per gestire la tipologia della notifica 
private final static int SIMPLE_NOTIFICATION_ID = 1; 
private final static int SOUND_NOTIFICATION_ID = 2; 
private final static int VIBRATE_NOTIFICATION_ID = 3; 
private final static int LIGHT_NOTIFICATION_ID = 4; 
private final static int CUSTOM_NOTIFICATION_ID = 5;
LAYOUT PERSONALIZZATO 
 Nel caso in cui si abbia necessità di creare una notofocation personalizzata android ci mette a 
disposizione la classe RemoteViews 
 I passi per usarla sono: 
 Creare istanza di RemoteViews 
 Assegnare l’istanza creata a contentView della Notification 
 Associare il PeddingIntent all’attributo pubblico contentIntet
ESEMPIO NOTIFICA PERSONALIZZATA 
public void customNotification(View button) { 
// Creiamo la Notification 
Notification notification = new Notification(R.drawable.icon, 
"Custom Notification", System.currentTimeMillis()); 
notification.flags |= Notification.FLAG_AUTO_CANCEL; 
// Impostiamo le altre informazioni tra cui l'Intent 
Intent intent = new Intent(this, NotificationActivity.class); 
intent.putExtra("notificationType", "Custom Notification"); 
PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, 
PendingIntent.FLAG_UPDATE_CURRENT); 
// Creiamo ed impostiamo la RemoteViews 
RemoteViews remoteView = new RemoteViews(getPackageName(),R.layout.remote_view_layout); 
remoteView.setTextViewText(R.id.firstText, "Primo Testo Custom View"); 
remoteView.setTextViewText(R.id.secondText, "Secondo Testo Custom View"); 
notification.contentView = remoteView; 
// Impostiamo l'Intent 
notification.contentIntent = pIntent; 
// La lanciamo attraverso il Notification Manager 
notificationManager.notify(CUSTOM_NOTIFICATION_ID, notification); 
}

More Related Content

Similar to Notification services su android

La gestione degli eventi e tecniche implementative
La gestione degli eventi e tecniche implementativeLa gestione degli eventi e tecniche implementative
La gestione degli eventi e tecniche implementativeNelson Firmani
 
Wearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple WatchWearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple Watch
Paolo Musolino
 
Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015
Todi Appy Days
 
Introduzione alla programmazione android - Android@tulug lezione 3
Introduzione alla programmazione android - Android@tulug lezione 3Introduzione alla programmazione android - Android@tulug lezione 3
Introduzione alla programmazione android - Android@tulug lezione 3
Ivan Gualandri
 
Sviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I OsSviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I Os
NoDelay Software
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
Sergio Ronchi
 
Sviluppare per microsoft band
Sviluppare per microsoft bandSviluppare per microsoft band
Sviluppare per microsoft bandDotNetCampus
 
SVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BANDSVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BAND
DotNetCampus
 
Spiegazione Programma phone
Spiegazione Programma phoneSpiegazione Programma phone
Ivano brogonzoli why_mca
Ivano brogonzoli why_mcaIvano brogonzoli why_mca
Ivano brogonzoli why_mca
Ivano Brogonzoli
 
Sviluppare per Microsoft Band
Sviluppare per Microsoft BandSviluppare per Microsoft Band
Sviluppare per Microsoft Band
Massimo Bonanni
 
Android Overview
Android OverviewAndroid Overview
Android Overview
Matteo Moreno
 
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaNotifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Giuneco S.r.l
 
Whymca nfc presentation
Whymca nfc presentationWhymca nfc presentation
Whymca nfc presentation
Myti S.r.l.
 
Whymca nfc presentation
Whymca nfc presentationWhymca nfc presentation
Whymca nfc presentation
Myti S.r.l.
 
Android - ishan fernando - android nfc presentation
Android - ishan fernando - android nfc presentationAndroid - ishan fernando - android nfc presentation
Android - ishan fernando - android nfc presentationWhymca
 

Similar to Notification services su android (17)

La gestione degli eventi e tecniche implementative
La gestione degli eventi e tecniche implementativeLa gestione degli eventi e tecniche implementative
La gestione degli eventi e tecniche implementative
 
Wearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple WatchWearable Lab: Progettazione per Apple Watch
Wearable Lab: Progettazione per Apple Watch
 
Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015Progettazione per Apple Watch - Todi Appy Days 2015
Progettazione per Apple Watch - Todi Appy Days 2015
 
Introduzione alla programmazione android - Android@tulug lezione 3
Introduzione alla programmazione android - Android@tulug lezione 3Introduzione alla programmazione android - Android@tulug lezione 3
Introduzione alla programmazione android - Android@tulug lezione 3
 
Sviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I OsSviluppo Di Applicazioni Su I Os
Sviluppo Di Applicazioni Su I Os
 
Java lezione 11
Java lezione 11Java lezione 11
Java lezione 11
 
Programming iOS lezione 1
Programming iOS lezione 1Programming iOS lezione 1
Programming iOS lezione 1
 
Sviluppare per microsoft band
Sviluppare per microsoft bandSviluppare per microsoft band
Sviluppare per microsoft band
 
SVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BANDSVILUPPARE PER MICROSOFT BAND
SVILUPPARE PER MICROSOFT BAND
 
Spiegazione Programma phone
Spiegazione Programma phoneSpiegazione Programma phone
Spiegazione Programma phone
 
Ivano brogonzoli why_mca
Ivano brogonzoli why_mcaIvano brogonzoli why_mca
Ivano brogonzoli why_mca
 
Sviluppare per Microsoft Band
Sviluppare per Microsoft BandSviluppare per Microsoft Band
Sviluppare per Microsoft Band
 
Android Overview
Android OverviewAndroid Overview
Android Overview
 
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele CoppolaNotifiche Locali vs Notifiche Push - di Gabriele Coppola
Notifiche Locali vs Notifiche Push - di Gabriele Coppola
 
Whymca nfc presentation
Whymca nfc presentationWhymca nfc presentation
Whymca nfc presentation
 
Whymca nfc presentation
Whymca nfc presentationWhymca nfc presentation
Whymca nfc presentation
 
Android - ishan fernando - android nfc presentation
Android - ishan fernando - android nfc presentationAndroid - ishan fernando - android nfc presentation
Android - ishan fernando - android nfc presentation
 

Notification services su android

  • 1. NOTIFICATION SERVICES ATTIVITA IN BACKGROUND SENZA UI
  • 2. COSA SONO I NOTIFICATION SERVICES  Vengono utilizzati per esecuzioni di attività in background che non sono dotati di UI  Fornisce il meccanismo per per la notifica all’utente della disponibilitàà di determinati dati che non possono essere visualizzati direttamente in una activity.  La NS permette di notifdicare sullo status bar di android il completamento di una attività  Anche se è possibilie lanciare una Activity non è corretto farlo bisogna prima avvisare utente e poi lanciare l’activity se necessario.
  • 3.  Un esempio di NS è l’arrivo di un SMS che viene notificao sulla status bar e delegato all’utente il lancio dell’activity necessaria alla sua visualizzzione.  Quando l’utente vuole vedere il dato trascina giu lo status bar e clicca sulla notifica lanciando l’Intent relativo.
  • 4. CREAZIONE DI UNA NOTIFICATION  Le informazini vengono incapsulate in un oggetto ti tipo Notification del package android.app e dovrà specificare le seguenti informazioni:  Icona  Messaggi oda visualizzare  Intent da lanciare in caso di selezione  Oltre a queste informazioni standard ci sono altre informazioni opzionali  Messaggio stile ticker nella status bar  Suono di allert  Modalità vibrazione  Lampeggio led
  • 5. CREAZIONE DI UNA NOTIFICATION  Alcune informazioni possono essere passate al costruttore della Notification Public Notification(in icon,CharSequence tickerText,long when)  When rappresenta l’istante della notifica e fa riferimento al click del dispositivo  le altre info possono essere settate attraverso il metodo specifico Public void setLatestEventInfo(Context context, CharSequence contentTitle, CharSequence contentText, PendingIntent contentIntent)  Il PendingIntent è in questo caso l’intent da lanciare alla selezione della notifica.  Attenzione!!! In android il ticker ovvero il testo specificato da visualizzare scurre dal basso verso l’altro
  • 6. ESEMPIO CODICE LANCIO NOTIFICATION PASSO 1  Creiamo una Activity che si occupera di recuperare le informazioni e di mostrarle Bundle extras = getIntent().getExtras(); if (extras != null) { TextView textView = (TextView) findViewById(R.id.outputView); textView.setText(extras.getString("notificationType")); }
  • 7. ESEMPIO CODICE LANCIO NOTIFICATION PASSO 2  Creiamo una variabile di class private NotificationManager notificationManager; private final static int VIBRATE_NOTIFICATION_ID = 3;  Quando creiamo l’activity principale creiamo il notificationManager notificationManager = (NotificationManager) getSystemService(Context.NOTIFICATION_SERVICE);
  • 8. USIAMO IL METODO PER GESTIRE LA NOTIFICATION /* * Metodo di gestione di una notifica con vbrazione */ public void vibrateNotification(View button) { // Creiamo la Notification Notification notification = new Notification(R.drawable.icon, "Vibrate Notification", System.currentTimeMillis()); long[] vibrateData = { 100, 100, 200, 200, 80, 80 }; notification.vibrate = vibrateData; // Impostiamo le altre informazioni tra cui l'Intent Intent intent = new Intent(this, NotificationActivity.class); intent.putExtra("notificationType", "Vibrate Notification"); PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_CANCEL_CURRENT); notification.setLatestEventInfo(this, "Vibrate Notification", "Vibrate Notification Extended", pIntent); // La lanciamo attraverso il Notification Manager notificationManager.notify(VIBRATE_NOTIFICATION_ID, notification); }
  • 9.  Possiamo usare queste costanti per gestire la tipologia della notifica private final static int SIMPLE_NOTIFICATION_ID = 1; private final static int SOUND_NOTIFICATION_ID = 2; private final static int VIBRATE_NOTIFICATION_ID = 3; private final static int LIGHT_NOTIFICATION_ID = 4; private final static int CUSTOM_NOTIFICATION_ID = 5;
  • 10. LAYOUT PERSONALIZZATO  Nel caso in cui si abbia necessità di creare una notofocation personalizzata android ci mette a disposizione la classe RemoteViews  I passi per usarla sono:  Creare istanza di RemoteViews  Assegnare l’istanza creata a contentView della Notification  Associare il PeddingIntent all’attributo pubblico contentIntet
  • 11. ESEMPIO NOTIFICA PERSONALIZZATA public void customNotification(View button) { // Creiamo la Notification Notification notification = new Notification(R.drawable.icon, "Custom Notification", System.currentTimeMillis()); notification.flags |= Notification.FLAG_AUTO_CANCEL; // Impostiamo le altre informazioni tra cui l'Intent Intent intent = new Intent(this, NotificationActivity.class); intent.putExtra("notificationType", "Custom Notification"); PendingIntent pIntent = PendingIntent.getActivity(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT); // Creiamo ed impostiamo la RemoteViews RemoteViews remoteView = new RemoteViews(getPackageName(),R.layout.remote_view_layout); remoteView.setTextViewText(R.id.firstText, "Primo Testo Custom View"); remoteView.setTextViewText(R.id.secondText, "Secondo Testo Custom View"); notification.contentView = remoteView; // Impostiamo l'Intent notification.contentIntent = pIntent; // La lanciamo attraverso il Notification Manager notificationManager.notify(CUSTOM_NOTIFICATION_ID, notification); }