RxJava/RxAndroid-来自传感器的无限事件流
我有一个应用程序,可以监控传感器的事件,转换它们,并需要向用户推送上游 例如,使用android.location.LocationManager更改位置。转换可能包括使用原始RxJava/RxAndroid-来自传感器的无限事件流,android,rx-java,reactive-programming,rx-android,Android,Rx Java,Reactive Programming,Rx Android,我有一个应用程序,可以监控传感器的事件,转换它们,并需要向用户推送上游 例如,使用android.location.LocationManager更改位置。转换可能包括使用原始lat/long和GeoCoder获取地址 如何对显示器(LocationListener)和发布服务器建模 class MyLocationListener implements LocationListener { void onLocationChanged(Location l) { //G
lat/long
和GeoCoder
获取地址
如何对显示器(LocationListener
)和发布服务器建模
class MyLocationListener implements LocationListener {
void onLocationChanged(Location l) {
//Get Address using GeoCoder
}
}
class MetaAPI {
Observable<Address> address() {
return Observable.create({what}); //<-- What should I add here?
//Need to glue MyLocationManager and MetaAPI
}
}
//So that I can use like this -->
public AddressObservation {
void monitor() {
metaApi.address()
.subscribe(...)
...;
}
}
类MyLocationListener实现LocationListener{
无效onLocationChanged(位置l){
//使用地理编码器获取地址
}
}
类MetaAPI{
可观察地址(){
返回可观察的。创建({what})//
公共广播观察{
无效监视器(){
metaApi.address()
.订阅(…)
...;
}
}
您可以使用主题来实现此目的。这只是主要思想,没有任何设计考虑(根据您的情况进行调整):
类MyLocationListener实现LocationListener{
无效onLocationChanged(位置l){
//使用地理编码器获取地址
MetaAPI.subject.onNext(null/*实际地址对象*/);
}
}
类MetaAPI{
静态主题=PublishSubject.create().toSerialized();
可观察地址(){
返回主题;
}
}
您可以使用主题来实现此目的。这只是主要思想,没有任何设计考虑(根据您的情况进行调整):
类MyLocationListener实现LocationListener{
无效onLocationChanged(位置l){
//使用地理编码器获取地址
MetaAPI.subject.onNext(null/*实际地址对象*/);
}
}
类MetaAPI{
静态主题=PublishSubject.create().toSerialized();
可观察地址(){
返回主题;
}
}
让我试一试。据我所知,Subject=Observable+observator
组合。@MasterGaurav正确,Subject
是Observable
这一事实允许您将其作为一个整体返回,而不向address()的客户端公开此实现细节
method。是的……这就是我的意思。让我试一试。据我所知,Subject=Observable+observator
combo.@MasterGaurav正确,Subject
是Observable
这一事实允许您将其作为一个整体返回,而不是向address()的客户机公开此实现细节
方法。是的……这就是我的意思。