这个就是Rxsearch,在searchview的基础上进行延伸。。。 
public class RxSearch {
    public static Observable<String> fromSearchView(@NonNull final SearchView searchView) {
        final BehaviorSubject<String> subject = BehaviorSubject.create("");
        searchView.setOnQueryTextListener(new SearchView.OnQueryTextListener() {
            @Override
            public boolean onQueryTextSubmit(String query) {
                subject.onCompleted();
                return true;
            }
            @Override
            public boolean onQueryTextChange(String newText) {
                if (!newText.isEmpty()) {
                    subject.onNext(newText);
                }
                return true;
            }
        });
        return subject;
    }
} 
用法如下  
mSubscription = RxSearch.fromSearchView(searchView) .debounce(500, TimeUnit.MILLISECONDS) .filter(item -> item.length() >= 1) .observeOn(AndroidSchedulers.mainThread()) .subscribe(query -> {  //此处进行搜索操作 } }); //此处进行搜索操作 } }); 
debounce 是延迟 500毫秒后进行请求。。Filter是过滤无效的请求,就是当输入为空的时候就不进行网络请求。。。