0

Android – Observable (RxJava)

Isaias Bueno
Isaias Bueno

Observable


Vamos imaginar a seguinte situação: quando precisamos executar alguma tarefa assíncrona no Java, de baixa complexidade, quais opções temos? Podemos utilizar Threads, Future ou algo do tipo. Porém, quando o nível de complexidade da tarefa aumenta, essas saídas tendem a se tornar complexas, confusas e difíceis de gerenciar.



Os Observables do RxJava foram projetados para suprir essa demanda. Algumas das suas principais características são flexibilidade e facilidade de uso, podendo ser encadeados, trabalhar com dados isolados ou com sequências de dados. Tanto para os casos onde a necessidade é de se emitir um valor isoladamente, quanto para uma série ou mesmo para um fluxo infinito de valores, o Observable pode ser utilizado.



O ciclo de vida de um Observable é composto de três eventos:



onNext(): disparado para notificar o Observer sobre um novo dado no fluxo do Observable;


onCompleted(): disparado para notificar o Observer de que não há mais dados a serem enviados do Observable;


onError(): disparado para notificar o Observer de que um erro ocorreu.


Para melhor entendimento do Observable, podemos dizer que ele é um tipo de Iterator assíncrono. Neste contexto, o método onNext() poderia ser o método next() do Iterator, enquanto o onCompleted() seria análogo ao !hasNext()e o onError() corresponderia ao caso onde o Iterator lança uma exceção, indicando que o fluxo foi interrompido e não há novos dados.


Do ponto de vista da emissão de dados, os Observables podem ser de dois tipos diferentes, “quentes” ou “frios”.


Os Observables “quentes” (ou hot), são aqueles que começam o fluxo de emissão de itens imediatamente após serem criados.


Desta forma, qualquer Observer que comece a observar este Observable pode começar a receber dados desse fluxo a partir de qualquer ponto. Em contrapartida, os Observables “frios” (ou cold) aguardam até que haja uma assinatura, através do método subscribe(), para que ele comece a produzir seu fluxo de dados.


Por Hoje é só pessoal, sucesso nos estudos!

0
0

Comentários (0)

Android|Kotlin Developer Github: https://github.com/IsaiasBueno

Brasil