
Hei kaikille! Tässä artikkelissa käsittelemme Android-laitteiden broadcast receivereitä.
Broadcast receiver on Android-laitteissa käytettävä viestijärjestelmä. Tämä viestintä tapahtuu kuitenkin Android-käyttöjärjestelmän ja Android-sovellusten välillä. Android-käyttöjärjestelmä jakaa sen avulla laitteeseen liittyviä tietoja Android-sovelluksille.
Tällaisia laitetietoja voivat olla esimerkiksi akun varaustaso, laitteen yhdistäminen Wi-Fi-verkkoon, latauksen alkaminen, lentotilan kytkeminen ja monet muut tilamuutokset.
Jos sovellus haluaa saada jonkin näistä tiedoista, se tekee käyttöjärjestelmälle tilauksen (subscribe). Kun jokin näistä järjestelmätapahtumista sattuu, käyttöjärjestelmä lähettää broadcast-viestin tilauksen tehneille sovelluksille.
Android-käyttöjärjestelmä lähettää nämä viestit aina tapahtumahetkellä. Tämä on olennaista: aina kun jokin järjestelmätapahtuma sattuu, Android-käyttöjärjestelmä lähettää broadcast-viestin juuri sillä hetkellä.

Jos haluat esimerkiksi sovelluksesi tietävän, milloin laitteen akku on vähissä, tilaat sovellukseesi kyseisen järjestelmätapahtuman. Kun akun varaus laskee alhaiseksi, Android-käyttöjärjestelmä lähettää broadcast-viestin sovelluksellesi.
Tai jos haluat sovelluksesi tietävän, milloin laite yhdistetään Wi-Fi-verkkoon, voit tilata tämän järjestelmätapahtuman. Aina kun laite kytkeytyy Wi-Fiin, Android-käyttöjärjestelmä lähettää sovelluksellesi broadcast-viestin.
Kun Android-laite antaa sinulle varoituksen alhaisesta akun varauksesta, se lähettää samalla tiedon kaikille tämän tapahtuman tilanneille sovelluksille.
Samoin kun Android-laite siirtyy lentotilaan, järjestelmä lähettää viestin kaikille tilanneille sovelluksille.

Miten näiden tietojen saaminen sitten hyödyttää Android-sovelluksia?
Sovelluksemme tilaa vain ne tiedot, joita todella tarvitsemme. Android-käyttöjärjestelmä ei lähetä sovellukselle kaikkia tietoja tai tapahtumia, vaan me tilaamme ainoastaan sovelluksemme kannalta olennaiset järjestelmätapahtumat.
Saamme siis tiedon järjestelmältä. Missä sitä sitten käytetään?
Kuvitellaan esimerkiksi, että kehität sovellusta, joka tallentaa käyttäjän valokuvia palvelimelle. Tällaisen sovelluksen avulla käyttäjä pääsee käsiksi kuviinsa mistä tahansa, mikä on kätevä ominaisuus.
Miten kuvat kannattaa lähettää palvelimelle? Jos lähetät jokaisen kuvan heti ottamisen jälkeen, käyttäjän mobiilidata voi kulua nopeasti loppuun, sillä kuvia saattaa kertyä satoja. Tämä ei ole hyvä ominaisuus sovellukselle, eikä kukaan halua käyttää sellaista ratkaisua.
Kuvat kannattaa tallentaa ensin laitteen muistiin ja siirtää palvelimelle vasta silloin, kun laite on yhdistetty Wi-Fi-verkkoon. Tämä vähentää käyttäjän mobiilidatan kulutusta.
Jos siis haluat toteuttaa tällaisen sovelluksen, sen täytyy tietää, milloin laite on yhteydessä Wi-Fi-verkkoon. Sovelluksesi voi tilata tämän järjestelmätapahtuman, ja kun Wi-Fi-yhteys muodostuu, Android-käyttöjärjestelmä lähettää broadcast receiver -viestin. Viestin saatuaan sovellus alkaa siirtää käyttäjän valokuvia palvelimelle.

Kun Wi-Fi-yhteys katkeaa, järjestelmä lähettää sovellukselle uuden viestin, jolloin sovellus keskeyttää kuvien lähettämisen.
Missä muissa tilanteissa broadcast receiveriä voidaan hyödyntää?
Esimerkiksi sovellukset, jotka vahvistavat käyttäjän tekstiviestillä, voivat käyttää broadcast-viestintää. Monet sovellukset, kuten WhatsApp ja Viber, käyttävät viestivahvistusta, ja osa niistä lukee saapuvan vahvistusviestin automaattisesti.
Voit toteuttaa tällaisen toiminnallisuuden broadcast-viestijärjestelmän avulla. Sovelluksesi tilaa järjestelmätapahtuman, ja kun puhelimeen saapuu uusi viesti, sovelluksesi saa siitä tiedon ja voi lukea viestin automaattisesti.
Toinen esimerkki: kun laitteen akku on vähissä, järjestelmä lähettää viestin tilauksen tehneille sovelluksille. Viestin saatuaan sovellus voi keskeyttää taustatehtävänsä. Tämä vähentää laitteen virrankulutusta ja estää taustatehtävien äkillisen katkeamisen.
Kun akun varaustaso palautuu normaaliksi, järjestelmä lähettää sovelluksille toisen viestin, jonka jälkeen taustatehtävät voidaan käynnistää uudelleen.
Näiden broadcast-viestien hyödyntäminen sovellussuunnittelussa tekee sovelluksesta tehokkaamman ja laadukkaamman.
On myös hyvä tietää, että broadcast-viestijärjestelmää voidaan käyttää kahden eri sovelluksen välillä.
Tämä tarkoittaa, että sovellus voi lähettää broadcast-viestin toiselle sovellukselle. Useimmiten sitä käytetään kuitenkin nimenomaan Android-käyttöjärjestelmän ja Android-sovellusten väliseen viestintään.
Päätän tämän artikkelin tähän. Nähdään seuraavassa tekstissä!
