Android: Cos'è una Sticky Broadcast?
Una sticky broadcast è uno strumento che gli sviluppatori Android usano per comunicare tra app. Queste trasmissioni avvengono senza che l'utente ne sia informato. Il sistema operativo Android normalmente tratta ogni applicazione come se fosse un utente separato. Le app girano indipendentemente e in isolamento, su macchine virtuali separate, usando solo i componenti hardware di cui hanno bisogno per funzionare. Questo porta a una sicurezza stretta, ma a volte le app devono condividere informazioni: le sticky broadcast sono una soluzione per passare informazioni da un'app a un'altra.
Broadcast
I broadcast sono annunci inviati alle app Android. Avvengono senza che l'utente ne sia consapevole. Il sistema operativo Android avvia la maggior parte dei broadcast, ma anche le singole app possono trasmettere. Come esempio, quando la batteria si scarica o lo schermo si spegne, un annuncio viene inviato a tutte le applicazioni. Se un'app riceve dati disponibili ad altre applicazioni, le informerà. Perché l'annuncio raggiunga le app, deve prima andare a un broadcast receiver, un componente nell'app che gestisce i messaggi broadcast.
Android Intents
A causa della separazione che Android impone tra le sue varie app, tutti i broadcast passano attraverso il sistema operativo. Un'app non può contattare direttamente il broadcast receiver di un'altra app. Quando un'app vuole inviare un broadcast, notifica il sistema operativo con un Intent. Un Intent è un messaggio per attivare un'app o uno dei suoi componenti, come il receiver. L'Intent definisce semplicemente il messaggio che sta per essere trasmesso – ad esempio che la batteria è scarica, o per richiedere l'accesso a una foto sul telefono.
Sticky Broadcast
Un broadcast normale raggiunge il receiver a cui è destinato, poi termina. Una sticky broadcast rimane attiva in modo da poter notificare altre app se hanno bisogno della stessa informazione – ad esempio, che la batteria è ora completamente carica. Quando registri una nuova app che ha bisogno di conoscere l'informazione, o quando un'app inattiva viene avviata, la sticky broadcast verrà inviata al receiver della nuova app. Una nuova sticky broadcast con informazioni aggiornate sullo stesso argomento riscriverà una precedente sticky broadcast.
Considerazioni
Un'app può inviare o rimuovere una sticky broadcast solo se la sua programmazione include un permesso che autorizza le stickies. La sicurezza sulle sticky broadcast non è stretta come sui messaggi non-sticky. Qualsiasi app può potenzialmente sovrascrivere la sticky di un'altra app. Una delle cose positive dell'uso di un intent, sticky o no, è che mentre puoi specificare quali app vuoi che lo ricevano, non devi farlo. Il tuo Android determina le app giuste per ricevere il tuo broadcast, basandosi sul filtro integrato in ogni app dal suo programmatore.