FusedLocationClient не может удалить LocationUpdates() после изменения ориентации экрана
Мое приложение использует сервисы Google Play и FusedLocationCLient для отслеживания используемого расстояния. Пользовательский интерфейс имеет единственную кнопку, которая начнет отслеживание, а при повторном нажатии остановит отслеживание. Если я начинаю трекинг, а затем ориентация экрана меняется, при повторном нажатии кнопки символ GPS все еще появляется в верхней части экрана.
Правильный метод все еще вызывается при нажатии кнопки, но, похоже, он не дает желаемого результата.
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = findViewById(R.id.button);
button2 = findViewById(R.id.button2);
textView = findViewById(R.id.textView);
distanceTracker = new DistanceTracker(this, 10000, 5000, 10, 10);
if (savedInstanceState != null)
{
isTracking = savedInstanceState.getBoolean("is_tracking");
button1.setText(savedInstanceState.getString("button1_text"));
textView.setText(savedInstanceState.getString("textView_text"));
}
else
{
isTracking = false;
}
}
public void buttonClick(View view)
{
if(isTracking)
{
distanceTracker.StopJourney();
isTracking = false;
button1.setText("Stopped Tracking");
}
else {
distanceTracker.StartJourney();
isTracking = true;
button1.setText("Started Tracking");
}
}
@Override
protected void onSaveInstanceState(Bundle outState) {
outState.putBoolean("is_tracking", isTracking);
outState.putString("button1_text", button1.getText().toString());
outState.putString("textView_text", textView.getText().toString());
super.onSaveInstanceState(outState);
}
Похоже, что созданный distanceTracker выпадает из области видимости при изменении ориентации. Как сохранить ссылку на объект distanceTracker, созданный при первом запуске операции после изменения ориентации.