Remove preferences listener from service
Этот коммит содержится в:
@@ -45,7 +45,6 @@ public class TrackingService extends Service {
|
|||||||
private String provider;
|
private String provider;
|
||||||
private boolean extended;
|
private boolean extended;
|
||||||
|
|
||||||
private SharedPreferences sharedPreferences;
|
|
||||||
private ClientController clientController;
|
private ClientController clientController;
|
||||||
private PositionProvider positionProvider;
|
private PositionProvider positionProvider;
|
||||||
|
|
||||||
@@ -59,7 +58,7 @@ public class TrackingService extends Service {
|
|||||||
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getName());
|
wakeLock = powerManager.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, getClass().getName());
|
||||||
wakeLock.acquire();
|
wakeLock.acquire();
|
||||||
|
|
||||||
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
id = sharedPreferences.getString(MainActivity.KEY_ID, null);
|
id = sharedPreferences.getString(MainActivity.KEY_ID, null);
|
||||||
@@ -77,8 +76,6 @@ public class TrackingService extends Service {
|
|||||||
|
|
||||||
positionProvider = new PositionProvider(this, provider, interval * 1000, positionListener);
|
positionProvider = new PositionProvider(this, provider, interval * 1000, positionListener);
|
||||||
positionProvider.startUpdates();
|
positionProvider.startUpdates();
|
||||||
|
|
||||||
sharedPreferences.registerOnSharedPreferenceChangeListener(preferenceChangeListener);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -90,10 +87,6 @@ public class TrackingService extends Service {
|
|||||||
public void onDestroy() {
|
public void onDestroy() {
|
||||||
StatusActivity.addMessage(getString(R.string.status_service_destroy));
|
StatusActivity.addMessage(getString(R.string.status_service_destroy));
|
||||||
|
|
||||||
if (sharedPreferences != null) {
|
|
||||||
sharedPreferences.unregisterOnSharedPreferenceChangeListener(preferenceChangeListener);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (positionProvider != null) {
|
if (positionProvider != null) {
|
||||||
positionProvider.stopUpdates();
|
positionProvider.stopUpdates();
|
||||||
}
|
}
|
||||||
@@ -129,51 +122,4 @@ public class TrackingService extends Service {
|
|||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
OnSharedPreferenceChangeListener preferenceChangeListener = new OnSharedPreferenceChangeListener() {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
|
|
||||||
StatusActivity.addMessage(getString(R.string.status_preference_update));
|
|
||||||
try {
|
|
||||||
if (key.equals(MainActivity.KEY_ADDRESS)) {
|
|
||||||
|
|
||||||
address = sharedPreferences.getString(MainActivity.KEY_ADDRESS, null);
|
|
||||||
clientController.setNewServer(address, port);
|
|
||||||
|
|
||||||
} else if (key.equals(MainActivity.KEY_PORT)) {
|
|
||||||
|
|
||||||
port = Integer.valueOf(sharedPreferences.getString(MainActivity.KEY_PORT, null));
|
|
||||||
clientController.setNewServer(address, port);
|
|
||||||
|
|
||||||
} else if (key.equals(MainActivity.KEY_INTERVAL)) {
|
|
||||||
|
|
||||||
interval = Integer.valueOf(sharedPreferences.getString(MainActivity.KEY_INTERVAL, null));
|
|
||||||
positionProvider.stopUpdates();
|
|
||||||
positionProvider = new PositionProvider(TrackingService.this, provider, interval * 1000, positionListener);
|
|
||||||
positionProvider.startUpdates();
|
|
||||||
|
|
||||||
} else if (key.equals(MainActivity.KEY_ID)) {
|
|
||||||
|
|
||||||
id = sharedPreferences.getString(MainActivity.KEY_ID, null);
|
|
||||||
clientController.setNewLogin(ProtocolFormatter.createLoginMessage(id));
|
|
||||||
|
|
||||||
} else if (key.equals(MainActivity.KEY_PROVIDER)) {
|
|
||||||
|
|
||||||
provider = sharedPreferences.getString(MainActivity.KEY_PROVIDER, null);
|
|
||||||
positionProvider.stopUpdates();
|
|
||||||
positionProvider = new PositionProvider(TrackingService.this, provider, interval * 1000, positionListener);
|
|
||||||
positionProvider.startUpdates();
|
|
||||||
|
|
||||||
} else if (key.equals(MainActivity.KEY_EXTENDED)) {
|
|
||||||
|
|
||||||
extended = sharedPreferences.getBoolean(MainActivity.KEY_EXTENDED, false);
|
|
||||||
|
|
||||||
}
|
|
||||||
} catch (Exception error) {
|
|
||||||
Log.w(LOG_TAG, error);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
};
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user