LocationListener不会被杀死

时间:2012-06-20 15:11:55

标签: android android-service android-location

我有一个实现LocationListener的前台服务。当服务被杀死时,它会继续修复。不过这就是我在onDestroy()

中所说的
@Override
public void onDestroy() {
    Log.e(getPackageName(), "Destroying GPSservice");
    super.onDestroy();
    running = false;
    stopForeground(true);
    locationManager.removeUpdates(EventService.this);
    locationManager = null;
}

我有什么遗失的吗?

修改

更多代码。这是onCreate()

    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);

2 个答案:

答案 0 :(得分:1)

使用

locationManager.removeUpdates(Your_Location_Listener_instance);

而不是

locationManager.removeUpdates(EventService.this);

有关详细信息,请参阅文档public void removeUpdates (LocationListener listener)

答案 1 :(得分:0)

我已经解决了这个问题。事实证明,MyLocationOverlay也绑定到了LocationSensorThread,我从来没有把它关掉。这就是让GPS保持清醒。