Week 09

kontrola pripojenia, broadcast, BroadcastReceiver, Activity Manager, ListView

TODO

  • grid view

Mr. Iľko - The State of the Art

  • Program na zisťovanie počasia na základe zadania.
  • Pomocou explicitných zámerov vieme prechádzať medzi aktivitami a pomocou implicitných zámerov vieme spúšťať doplnkovú funkcionalitu.
  • Údaje z externej služby sme sťahovali pomocou inštancie triedy HttpURLConnection.
  • S výsledkom, ktorý sme dostali vo forme JSON objektu sme spracovali pomocou tried JSONObject a JSONArray.

Internet Connection Unavailable

Broadcast Receivers

  • Pozor však na to, že: Note that having an active network interface doesn’t guarantee that a particular networked service is available. Network issues, server downtime, low signal, captive portals, content filters and the like can all prevent your app from reaching a server. For instance you can’t tell for sure if your app can reach Twitter until you receive a valid response from the Twitter service.

  • Toto môžete rovnako zažiť napr. aj u nás v škole - ak sa so svojou aplikáciou budete snažiť pripojiť do internetu alebo vo všeobecnosti na špecifickú službu, ktorá nebeží na vybraných portoch na wifi sieti TUNET-guest, máte smolu a pokiaľ nie ste na túto situáciu pripravení, vaša aplikácia zhavaruje…

  • Tento prístup bude síce fungovať tak, ako má, ale nie vždy je vyhovujúci. Občas totiž potrebujeme zareagovať okamžite, ak dôjde k zmene stavu sieťového pripojenia. Akým spôsobom je teda možné byť upozornený automaticky na to, že sieťové spojenie sa stratilo alebo sa naopak obnovilo?

  • Za týmto účelom existuje mechanizmus tzv. Broadcast Receiver-ov (slide).

  • A broadcast receiver (short receiver) is an Android component which allows you to register for system or application events. All registered receivers for an event are notified by the Android runtime once this event happens.

  • Broadcast receiver v Androide predstavuje klasickú implementáciu mechanizmu publish-subscribe (slide), resp. implementáciu návrhového vzoru pozorovateľ (observer). Ako tento mechanizmus pracuje? Príklad - Shrek 2 (slide) vs nočák.

  • Aj každý z nás je v princípe nejakým typom BR - počúvame na meno, na špecifické pokriky/oznamy.

  • Príkladom takej udalosti môže byť systémová udalosť ACTION_BOOT_COMPLETED, ktorá nastane len raz a to vtedy, keď systém Android ukončil proces bootovania (štartovania) systému.

Vytvorenie a zaregistrovanie Broadcast Receivera

Updating UI from Broadcast Receiver

Conclusion

  • Dnes sme si ukázali ďalší zo stavebných kameňov Android aplikácií - Broadcast Receiver.

  • Nabudúce sa pokúsime stiahnuť dáta pomocou knižnice Retrofit a ukážeme si, ako zobraziť údaje v zozname pomocou pohľadu ListView.

Additional Resources