RxAndroid:如何向观察者添加项目

时间:2018-05-05 19:42:31

标签: rx-java

我遇到以下问题:

我有一个生成和Observable的查询。

fun onQueryTextChange(newText: String?): Boolean {
        val disposable = model
            .search(newText).
            .subscribeOn(workerThreadScheduler)
            .observeOn(mainThreadScheduler)
            .subscribe(observer)
}

现在,如果再次调用该函数,我想向观察者发出新项目。

请提出任何建议?

1 个答案:

答案 0 :(得分:0)

你需要一个支持财产。

private val querySubject:Subject<<String>> = PublishSubject.create()

fun onQueryTextChange(newText: String?): Boolean {
    querySubject.onNext(newText)
    return true
}
fun queryStream:Observable<String>{
   return querySubject
}

现在你有一个函数queryStream,它将发出所有搜索文本而不会关闭。 你可以这样使用:

val disposable = queryStream.flatMap(model.search(newText))
            .subscribeOn(workerThreadScheduler)
            .observeOn(mainThreadScheduler)
            .subscribe(observer)