У меня возникли вопросы относительно LocationListener
в моей службе под названием myService
.Почему мой LocationListener стал нулевым?
Вот мой код:
///onStart method ..
onStart() {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE)
.
.
provider = locationManager.getBestProvider(criteria, true);
locationListener = (LocationListener) new MyLocationListener();
locationManager.requestLocationUpdates(provider, 0, 0, locationListener);
}
В моей деятельности есть кнопка, которая должна остановить службу. На нажатием кнопки я делаю:
stopService(new Intent(getApplicationContext(), myService.class)
В файле myService.java
у меня есть:
////onDestroy method....
onDestroy() {
locationManager=(LocationManager) getSystemService(Context.LOCATION_SERVICE);
locationManager.removeUpdates(locationListener); //Getting **exception here ....
}
Я получаю следующее исключение:
java.lang.IllegalArgumentException: listener==null at android.location.LocationManager.removeUpdates(LocationManager.java:799) at
<.package_name>myService.onDestroy(myService.java:407)
Я не знаю, почему слушатель обращается в нуль без причины. Пожалуйста, скажите мне, где я ошибаюсь!
Вы вручную устанавливаете его для нулевого кода в коде? – JRL
Я уверен, что не устанавливаю его в null. Я думаю, что сервис перезагружен, но я не понимаю, какая часть кода он запускается, когда служба перезапускает. – sheik