2. Thread: ci permettono di gestire diversi processi senza bloccare la UI
Handler e Looper: sono meccanismi che permettono di interagire con i thread UI
Notification Services: Permettono ad un servizio in background di comunicare all’utente informazioni.
Broadcast: Sono componenti che si attivano in corrispondeza della ricezione di un particolare Intent
lanciato in broadcast.
3. THREAD
In android sono presenti sia i Thread normali che quelli facenti parte della versione 1,4 di java
(cuncurrent API).
Generalmente i thread ci danno la possibilità di mandare in esecuzione due processi in
parallelo indipendenti uno dall’altro.
Per usare i Thread in android bisogna:
Estendere la classe Thread
Implementare l’interfaccia Runnable
4. Estendere la classe Thread implementato il metoodo run() questo permette di gestire l’avvio del
thread separato dal thread principale (lanciando il metodo start).
Il Thread termina l’esecuzione nel momento in cui termina il metodo run()
ATTENZIONE: per eseguire il metodo run con un’altro thread e non quello padre bisogna lanciare
start() e non run().
Una cosa a cui dobbiamo stare attenti è che se servono risorse sulla nostra app bisogna per
prima stoppare ed eliminare i thread secondari
5. HANDLER E LOOPER
Per comunicare tra thread ovvero tra il worker thread e e il main thread si usano
generalmente:
Handler
MessageQueue.
Message
Tutte queste classi si trovano nel package android.os
6. COME FUNZIONANO
Android asocia ad ogni thread un particolare MessageQueue che è una coda di messagi
descritti da istanz<e della classe Message.
É una specie di TransferObject ovvero un oggetto in grado di memorizzare info e trasferirle in
un’unica chiamata.
Ovvio che per utilizzare le info tra thread bisogna associarle ad un messaggio.
ATTENZIONE: per poterli usare (i messaggi) bisogna usare Handler adeguati che ci permettono
di creare e consumare i messaggi creati.Per gestire aggiornamenti delle UI bisognerà gestire
l’Handler creato dal Thream Main (l’unico che abbia il controllo delle ui)
Generalmente vengono usati i metodi handleMessage() e notifyValue() questi due messaggi
ci permettono lo scambio in modo sicuro e agevole dei messaggi.
7. IL LOOPER
Il looper generalmente viene usato nel contesto dei thread Produttore/Consumatore ovvero
un thread genera un qualcosa ed un’altro thread consuma (usa) il qualcosa generato
dall’altro thread.
In genere vengono usati per la gestione di Task eThread Asincroni (download dati dal network)
8. NOIFICATION SERVICE
Il NS permette di gestire messaggi di notifica da far visualizzare all’utente.
Non disturba l’attività dell’utente dato che viene notificato nella barra e sarà l’utente a
gestirlo.
Quando si seleziona la notifica viene lanciato un Intent da gestire all’itnerno dell’applicazione.
Si possono gestire souoni,vibrazioni led e altro
Anche i servizi hanno una life cicle da tener in cosiderazione quando si progetta un
NotificationManager (la classe che si ocupa di gestire i comportamenti del NS)