RxJava2 - Wątki

Kliknij i wspomóż mnie :)

Android

Wstęp

W tym artykule skupię się na przedstawieniu tego, jak łatwo i szybko można zarządzać wątkami w Androidzie z pomocą biblioteki RxJava2.

Cały kod można sprawdzić pod tym linkiem:

Github

Kod ten jest częścią kursu na Udemy pod nazwą RxJava2 w Android. Zachęcam do sprawdzenia kilku darmowych odcinków😉

Kurs RxJava2

Rodzaje wątków

RxJava2 pozwala nam określić w jaki sposób chcemy przetwarzać dane w tle. Do tego służy klasa Schedulers oraz operator subscribeOn

Klasa Schedulers posiada takie warianty obsługiwania wątków:

  • computation - operacje wymagające dużej mocy obliczeniowej
  • io - wszelakie operacje wejścia / wyjścia
  • single - silnie sekwencyjne operacje
  • newThread - nowy wątek dla każdej operacji
  • trampoline - imituje kolejkę FIFO

Przykład ładowania zdjęcia

Wymyśliłem, że dobrym przykładem będzie ładowanie zdjęcia z wcześniej zdefiniowaną miniaturką.

Widok naszej aplikacji jest napisany tak:

Jak widać znajduje się tylko jeden ImageView, który ma rozmiar 1/3 ekranu i będzie przyjmował grafikę z kodu.

Implementacja widoku

W klasie deklarujemy nasz ImageView oraz interfejs Disposable w celu późniejszego pozbycia się wątku.

Użycie RxJava2

Po załadowaniu naszego widoku tworzymy za pomocą operatora create strumień, który pozwala określić ilość kroków (onNext).

Na początek od razu ładujemy miniaturkę i symulujemy pobieranie danych z sieci usypiając wątek na 2 sekundy.

Po tym czasie ładujemy właściwą grafikę i powiadamiamy o zakończeniu wszystkich subskrybentów (onComplete).

Subskrybcja

Aby ładowanie w ogóle wystąpiło musimy się zasubskrybować.

W pierwszej linijce określamy, że będziemy ładować dane czyli wybieramy Schedulers.io()

Następnie jako, że wyświetlamy dane w widoku to wynik będzie zwrócony do wątku głównego.

Na sam koniec subskrybujemy i ładujemy zdjęcie do ImageView

Zakończenie

Jeszcze raz zachęcam do sprawdzenia mojego kursu i poniżej wstawiam linki do dokumentacji:

Github/RxJava2
ReactiveX

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.