У меня есть простое приложение, которое использует системный сервис Android LOCATION_SERVICE. При закрытии приложения мне нужно, чтобы служба остановилась. Я долго искал, как это сделать, но я не должен искать правильные вещи. Кто-нибудь знает, как остановить эту услугу?Не удается остановить LOCATION_SERVICE
Вот что я делаю.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
private LocationManager lm;
private LocationListener locationListener;
lm = (LocationManager)
getSystemService(Context.LOCATION_SERVICE);
locationListener = new MyLocationListener();
lm.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
0,
0,
locationListener);
...
}
@Override
protected void onDestroy() {
lm.removeUpdates(locationListener);
super.onDestroy();
}
В классе LocationManager отсутствуют методы остановки службы. Вот где я думал, что вы сможете закрыть или остановить его.
Спасибо за любую помощь.
Вы уверены, что 'onDestroy()' вызывается? Если вы просто выходите из приложения с помощью кнопки home/back, скорее всего, это не так. Смотрите: http://developer.android.com/reference/android/app/Activity.html – eldarerathis
Чтобы добавить к сказанному eldarerathis, вы, вероятно, захотите начать и остановить сбор в onStart и onStop, или onPause и onResume, чтобы он останавливался когда вы идете в фоновый режим. –
Это просто один из многих способов, которые я пробовал. Я также попробовал onBackPressed(), который выполняет. Но это не моя проблема. Я просто хочу закрыть службу определения местоположения. – jonsinfinity