这些天我开始学习反应式编程.在我的应用程序中,我已经转向使用rxandroid来处理异步处理数据的许多情况.但我不知道如何申请位置监听器.有没有办法订阅用户位置更改?请给我一个主意.
您可以使用LocationListener
和在获取回调时创建Observables或Subject onLocationChanged
,只需使用location对象调用onNext即可.
public final class LocationProvider implements onLocationChanged { private final PublishSubjectlatestLocation = PublishSubject.create(); //... @Override public void onLocationChanged(Location location) { latestLocation.onNext(location); } }
然后,您可以在需要位置的类中订阅它.
您还可以使用一些开源库:Android-ReactiveLocation和cgeo
另外,请参阅基于Observable的API并取消订阅问题
希望这可以帮助!