В моем service
в некоторых сценариях я не могу остановить поиск GPS и разрядку аккумулятора устройства.
LocationListenerAgent.java
@Override
public void onCreate() {
thisContext = this;
// Register ourselves for location updates
networkListener = new LocationListenerAgent();
gpsListener = new LocationListenerAgent();
lmgrNet = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
lmgrGps = (LocationManager)this.getSystemService(Context.LOCATION_SERVICE);
gps_enabled = lmgrGps.isProviderEnabled(LocationManager.GPS_PROVIDER);
lmgrNet.requestLocationUpdates("network", ONE_MINUTE, 10, networkListener);
lmgrGps.requestLocationUpdates("gps", ONE_MINUTE, 10, gpsListener);
super.onCreate();
}
@Override
public void onDestroy() {
super.onDestroy();
// Unregister listener
lmgrNet.removeUpdates(this);
lmgrNet = null;
lmgrGps.removeUpdates(this);
lmgrGps = null;
}
В некоторых местах моего приложения, когда я нажимаю «назад» в основном действии, которое уничтожает приложение, это называется:
@Override
protected void onStop() {
if (mBound) {
unbindService(mConnection); //this is a callback to the locationlisteneragent class to bind it to a service
mBound = false;
}
super.onStop();
}
@Override
protected void onDestroy() {
if (mBound) {
unbindService(mConnection);
mBound = false;
}
stopService(new Intent(this, LocationListenerAgent.class));
super.onDestroy();
}
возможно, мои методы жизненного цикла super.On
должны быть перед кодом с методом.
Что еще мне нужно сделать, чтобы остановить GPS??? Я видел, что у других людей были проблемы с этим, и ответы не кажутся такими уж абсолютными.
В других сценариях в моем приложении GPS останавливается.