Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
Observable для SearchView будет не совсем корректно работать. Вы на него подписываетесь в onCreate(), но при срабатывании onQueryTextSubmit у Вас произойдет отписка, так как вызовется onComplete. Получается, что повторный поиск не будет работать. Чтобы повторный поиск работал, нужно избавиться от subject.onComplete();subscribeOn(Schedulers.io()) установка listener-а на поле ввода будет происходить не в главном потокеsubscribeOn() указывает в какой поток наблюдаемый источник (в нашем случае subject внутри listener поля ввода) будет передавать создаваемые observable элементы. То есть событие происходит в UI потоке, затем его отлавливает listener в этом же потоке, далее subject внутри listener создаёт событие (onNext()), а возвращаемый observable элемент уже попадает в поток IO.Скажите а вам не надоело пользоваться анонимными классами? На дворе вроде конец 2017 и даже андроид уже более или менее из коробки поддерживает ламбда функции.
Реализация поиска с использованием RxJava