我使用Mapzen Lost api进行定位服务,使用匕首进行依赖注入和改造以获取设备当前位置的天气数据。我在尝试从lostLocationService创建回调时遇到问题,因此在确认已找到位置之前,改装请求不会被发送。
我的问题是依赖关系。我有一个Presenter,它具有LocationService的依赖关系,并且具有LostLocationService的依赖关系。 我在LostLocationService类中有一个位置监听器,我在其中覆盖onLocationChanged()
LocationListener listener = new LocationListener() {
@Override
public void onLocationChanged(Location location) {
myLocationListener.onLocationFound();
}
};
这一切似乎都很好但只暴露了对LostLocationService的回调。我是否需要针对每个级别的依赖进行回调?或者更可能的是,我错过了什么?
答案 0 :(得分:1)
我也想知道是否应该注入听众以及处理这些听众的最简单方法。
在您的情况下,也许您应该考虑使用侦听器列表(如果可能)将事件分派给所有相关实例。如果每个侦听器都具有明确定义的生命周期并且可以预测性地注册/取消注册,则此方法很有效。通过这种方式,您可以避免出现一些"级联"听众
我不知道您的实施细节,但我想在这里您的LocationService充当抽象层?我就是这样,我会这样做:
我也会在这里使用一些接口,因为以后更容易更改代码/测试它。定义一个LocationProviderInterface,公开一些实用程序函数(startService,stopService,addListener等...)。另外,定义一个监听器应该实现的接口(正如你已经做过的那样)。
另外,请不要犹豫,详细说明你的第一点。
我遇到了尝试从中创建回调的问题 lostLocationService,以便不会发送改装请求 直到它确认找到了一个位置。