venerdì 11 aprile 2014

Notifiche

INDICE:


1) Scopo
2) Alarm Manager
3) ManagerBroadcastReceiver4) Notifica


1)Scopo

Lo scopo di questo post è spiegare come si realizzano le notifiche, come far ripetere la notifica tutti i giorni.

2) Alarm Manager

Prima di iniziare a parlare di notifiche, vediamo come è possibile rendere le nostre notifiche ripetitive con intervallo giornaliero. Nel mio caso per esempio voglio che al tocco di un bottone "Attiva notifica" viene creato l'allarme con periodicità giornaliera. Interveniamo quindi nel "metodo" mappato per il button Attiva notifica" e scriviamo:





Come prima cosa ho istanziato le SharePreferences per tenere traccia dell'esistenza o meno della notifica che andiamo a settare. Se esiste già inutile rifarla.
Entrando nell' if, di non esistenza della notifica, setto il Calendar per indicare quando deve avvenire la prima notifica, se la vogliamo istantanea settiamo semplicemente calendar = Calendar.getInstance(); e setTimeInMIllis così come ho settato io. Nel mio caso ho semplicemente aggiunto un giorno poichè voglio che la notifica inizia dal giorno dopo. Successivamente istanzio l'Intent che si occupa della creazione vera e propria della notifica (vedremo dopo Myreceiver) e lo setto poi successivamente nel pendingIntent che è l'intent che viene settato nell'alarmManager come si vede da foto. Successivamente istanzio alarmManager e setto la ripetizione (AlarmManager.RTC_WAKEUP), quando deve cominciare (calendar.getTimeInMillis()),
l'intervallo di allarme (AlarmManager.INTERVAL_DAY) e l'intent da lanciare (pendingIntent).


3) ManagerBroadcastReceiver (MyReceiver) - 4) Notifica

La classe sopra citata, MyReceiver, è una classe che estende BroadcastReceiver, quindi eredita il metodo onReceive(Context context, Intent intent){} in questo metodo creiamo, come si può vedere sotto, la notifica vera e propria.




L'oggetto mManager che utilizzo è la classe NotificationManager di android. Il resto è piuttosto parlante.