Odjazd – prowizoryczny klient – #02

Mam już działający serwer, który potrafi wysłać jsona w świat. Trzeba mi teraz czegoś co odbierze tego jsona i wyświetli użytkownikowi. Czas na prowizorycznego klienta. Choć to prowizorka, to powinien naprawdę komunikować się z serwerem, a nie tylko to udawać.

Żeby aplikacja mogła się połączyć z internetem trzeba jej przyznać w manifeście odpowiednie uprawnienia:

https://gist.github.com/jezinka/25e7bfe432c0da3c311726ea75e204f3

Dodanie odpowiedniego uprawnienia to nie jedyne o czym trzeba pamiętać przy tworzeniu aplikacji, która łączy się z internetem. Druga rzecz to fakt, że zapytanie nie może się wywoływać w głównym wątku. Żeby zaspokoić tą potrzebę trzeba stworzyć asynchroniczny task, który odpyta serwer poza głównym wątkiem:

https://gist.github.com/jezinka/d839e3f201ae67ccac4659afab8281c4

Tworzę klasę OdjazdQueryTask (wplatam nazwę aplikacji, bo mogę 😉 ), która rozszerza AsyncTask, z paramterem typu URL na wejściu i Stringiem na wyjściu. Środkowy parameter jest typem Void, bo nie wykorzystuję metody onProgressUpdate. Metoda onPostExecute wykonuje się w momencie zakończenia taska i wstawia mi wynik zapytania do textView. Druga metoda doInBackground wykonuje zapytanie do serwera dla podanego Url-a:

https://gist.github.com/jezinka/7b6158e7320136686f5b0ad59c19eac2

Layout mojej aplikacji, to dwa przyciski i textview. Na ten moment to mi wystarczy. Trzeba podpiąć pod przycisk odpowiednią akcję, która wyzwoli zapytanie do serwera:

https://gist.github.com/jezinka/ab9e624c9749b4b62b327fac35f79d40

Tworzę nową instancję klasy OdjazdQueryTask i wywołuję ją z paramentrem URL stworzonym dla początku startowego 'praca’.

https://gist.github.com/jezinka/738f7b6085196c49e822fe09b9ebf7ad

I teraz krótka demonstracja jak zachowuje się aplikacja po wciśnięciu każdego z przycisków:

Jak na razie wszystko w najlepszym porządku 🙂

Kod dostępny tu: https://github.com/jezinka/Odjazd-client

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *

Witryna wykorzystuje Akismet, aby ograniczyć spam. Dowiedz się więcej jak przetwarzane są dane komentarzy.