我有一个实现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);
答案 0 :(得分:1)
使用
locationManager.removeUpdates(Your_Location_Listener_instance);
而不是
locationManager.removeUpdates(EventService.this);
有关详细信息,请参阅文档public void removeUpdates (LocationListener listener)
答案 1 :(得分:0)
我已经解决了这个问题。事实证明,MyLocationOverlay
也绑定到了LocationSensorThread,我从来没有把它关掉。这就是让GPS保持清醒。