Сбрасывается переменна в onLocationChanged
При запуске Service я получаю id(к примеру равный 3), но когда вызывается onLocationChanged id становится равным 0, как его сохранить, чтоб постоянно пользоваться им?
public class GPSTrackerService extends Service implements LocationListener {
private static final long MINIMUM_DISTANCE_CHANGE_FOR_UPDATES = 1; // in Meters
private static final long MINIMUM_TIME_BETWEEN_UPDATES = 1000; // in Milliseconds
protected LocationManager locationManager;
private SendData sendData = new SendData();
private SharedPreferences sPref;
private int id;
@Nullable
@Override
public IBinder onBind(Intent intent) {
return null;
}
@Override
public int onStartCommand(Intent intent, int flags, int startId) {
startLoc();
return super.onStartCommand(intent, flags, startId);
}
private void startLoc() {
locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
return;
}
locationManager.requestLocationUpdates(
LocationManager.GPS_PROVIDER,
MINIMUM_TIME_BETWEEN_UPDATES,
MINIMUM_DISTANCE_CHANGE_FOR_UPDATES,
new GPSTrackerService()
);
}
@Override
public void onCreate() {
sPref = PreferenceManager.getDefaultSharedPreferences(this);
id = getUserId();
super.onCreate();
}
@Override
public void onLocationChanged(@NonNull Location location) {
try {
sendLocation(location.getLongitude(), location.getLatitude());
} catch (JSONException e) {
e.printStackTrace();
}
}
public void sendLocation(double longitude, double latitude) throws JSONException {
System.out.println(id);
}
private int getUserId() {
return sPref.getInt("id", -1);
}
} ```