Обзор
RxJava это библиотека , которая реализует асинхронную операцию. Он может заменить наш укротитель, AsynTask.
О
RxJava ядра из двух Наблюдаемых (наблюдаемого источника событий) и подписчики (наблюдатель).
Наблюдаемые издал ряд событий, абоненты обработки этих событий.
Наблюдаемое может выдать ноль или больше событий, или знать конец ошибки. Каждый выпуск события, он будет вызывать его метод onNext Абонента, последний вызов Subscriber.onNext () или Subscriber.onError () конец.
Примечание: Rxjava , кажется, хотят , чтобы разработать шаблон режим наблюдателя, но одна вещь , значительно отличается, то есть, если Observerble не имеет какого - либо подписчика, то это не будет выдавать какие - либо заметные события.
HelloWord
В первую очередь связанной с ним упаковки
компилировать 'io.reactivex: rxandroid: 1.2.1'
компиляции «io.reactivex: rxjava: 1.1.6»
// определим зритель
Наблюдаемый <String> myObservable = Observable.create (
новый Observable.OnSubscribe <String> () {
@Override
общественных недействительный вызова (Абонент <? Супер String> суб) {
//向观察者发出通知
sub.onNext ( "Привет, мир ! ");
sub.onCompleted ();
}
}
);
Наблюдаемые объекты, определенные здесь просто отправить строку Hello World и затем закончились.
Затем создайте строку для обработки подписчиков исследуемых объектов испускаемых.
// зритель имеет три метода
для подписчика <String> = новый новый mySubscriber для подписчика <String> () {
@Override
общественного недействительного OnNext (строка S) {
System.out.println (s);
}
@Override
общественных недействительного OnCompleted () {}
@Override
общественности к аннулированию OnError (The Throwable , Е) {}};
// сделать отношения между наблюдателем и наблюдали для получения myObservable.subscribe (mySubscriber);
myObservable объект является вызов mySubscriber после // Подписка onNext и OnComplete метод, mySubscriber напечатает Hello World!
HelloWord упрощена
// RxJava построил множество функций для упрощения создания наблюдаемого объекта, такие Observable.just создают только издали
// событие до конца Observable объекта, который может быть сокращен до одной строки
Наблюдаемый <String> myObservable = Observable.just ( "Привет, мир!");
// давайте посмотрим, как упростить Абонент, в приведенном выше примере, мы на самом деле не заботимся о OnComplete и OnError,
// только нужно сделать некоторую обработку onNext времени, на этот раз мы можем использовать класс ДЕЙСТВИЙ1.
Action1 <String> onNextAction = новый Action1 <String> () {
@Override
общественного аннулируются вызова (String s) {
System.out.println (s);
}
};
подписаться метод имеет освобождение от перегрузки, Action1 получает три типа параметров, соответственно, OnNext OnComplete, OnError функции.
// Теперь
myObservable.subscribe (onNextAction);
// можно дополнительно упростить общую
Observable.just ( "! Вводной, World")
.Subscribe (Action1 нового нового <String> () {
@Override
общественных аннулируется вызов (String S) { системы .out.println (S); } });