Android 整个应用程序中的一个LocationListener

Android 整个应用程序中的一个LocationListener,android,gps,location,locationmanager,locationlistener,Android,Gps,Location,Locationmanager,Locationlistener,我需要在整个应用程序中实现一个LocationListener 我知道我可以将服务与LocationListener一起使用,但问题是我必须在位置更改时使用一些通知程序。当我想随时获取最后一个位置时,这是不够的,因为当位置发生变化时,我需要立即获取所有活动中的当前位置 所以在伪代码中,我需要这样的东西: myLocationManager.RequestLocationUpdate(LocationManager.GPS_提供程序,0,0,新LocationListener(){ 已更改位置上的

我需要在整个应用程序中实现一个LocationListener

我知道我可以将服务与LocationListener一起使用,但问题是我必须在位置更改时使用一些通知程序。当我想随时获取最后一个位置时,这是不够的,因为当位置发生变化时,我需要立即获取所有活动中的当前位置

所以在伪代码中,我需要这样的东西:

myLocationManager.RequestLocationUpdate(LocationManager.GPS_提供程序,0,0,新LocationListener(){
已更改位置上的公共无效(位置){
通知所有活动(地点);
}
};

在每项活动中:


void onNotify(Location-Location){//…}
调用服务调用sendBroadcast()来广播一个意图。将经度/纬度作为附加值添加到该意图中。在需要该位置的每个活动中,为该意图注册一个广播接收者,并从接收者onReceive()中的意图附加值中获取lng/lat

您试过使用吗

众所周知,它非常健壮,我个人曾在我的一个基于位置的应用程序中使用过它


它的一个优点是它与使用
服务的兼容性
;这就是即使应用程序在后台也需要获得位置更新的地方。它获得了
唤醒锁
来唤醒手机,获取位置,然后优雅地释放它。

因此我必须在这个服务中创建我的服务意图lass,在那里放一些额外的东西,然后从这个服务中发送broadcast()?然后我需要一个内部类来扩展BroadcastReceiver,并且在每次接收时只更改我在Intent参数中得到的位置?我理解正确吗?只需声明一个新的BroadcastReceiver()在您的活动中,在其onReceive中提取额外内容。请确保在Resume()上注册它,并在onPause()上注销它。我会检查它,因为我还不知道这个库。它很容易设置。它还附带了一个演示。祝您好运!接受一个对您有用的答案,这样其他人可能会发现它有用。 public void onLocationChanged(Location location) { notifyAllActivities(location); }