Android LocationListener不会被杀死
我有一个实现LocationListener的前台服务。当服务被终止时,它会继续得到修复。然而,这就是我在Android LocationListener不会被杀死,android,android-service,android-location,Android,Android Service,Android Location,我有一个实现LocationListener的前台服务。当服务被终止时,它会继续得到修复。然而,这就是我在onDestroy()中调用的 有什么我遗漏的吗 编辑 更多代码。这在onCreate()中: 使用 而不是 locationManager.removeUpdates(EventService.this); 有关更多信息,请参阅doc我已解决了该问题。事实证明,MyLocationOverlay也绑定到LocationSensorThread,我从来没有关闭它。所以这让GPS保持清醒。我
onDestroy()中调用的
有什么我遗漏的吗
编辑
更多代码。这在onCreate()中:
使用
而不是
locationManager.removeUpdates(EventService.this);
有关更多信息,请参阅doc我已解决了该问题。事实证明,MyLocationOverlay
也绑定到LocationSensorThread,我从来没有关闭它。所以这让GPS保持清醒。我在上面已经说过,我的LocationListener是由EventService实现的。我想这就是我的例子。添加更多信息,你的locationListener是如何实现的?我真的不想听起来势利,但是:它的实现就像它应该的那样。GPS本身工作正常,但当服务停止时,我希望locationManager删除服务的更新。相反,它不断得到修复。否则,我必须在这里复制大量代码。发布更多代码以显示如何实现位置侦听器您是否知道是否调用了onDestroy()
方法?你是否有客户绑定到你的服务?我有一个类似的问题。在我的例子中,问题与活动生命周期()有关。注意如何在不调用onDestroy的情况下终止活动,从而阻止注册位置侦听器。
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Criteria criteria = new Criteria();
String bestProvider = locationManager.getBestProvider(criteria, true);
Location location = locationManager.getLastKnownLocation(bestProvider);
if (location != null) {
onLocationChanged(location);
}
locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER,
3000L, 15.0f, this);
locationManager.removeUpdates(Your_Location_Listener_instance);
locationManager.removeUpdates(EventService.this);