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

问题描述 投票:0回答:1

我面临以下问题:

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

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

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

请问有什么建议吗?

rx-java
1个回答
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)
© www.soinside.com 2019 - 2024. All rights reserved.