Zalecam unikać takich konstrukcji jak ustawianie wartości mLastLocation w metodzie, która na pozór tylko sprawdza różnicę w lokalizacjach. Jest to o tyle niebezpieczne, że na pozór niegroźna metoda, zmienia stan obiektu w którym się znajduje i jej wynik zależy od tego w jaki sposób jest użyta. Jeśli metoda coś sprawdza to nie powinna niczego zapisywać, a już na pewno nie zmieniać memberów obiektu. Rozwiązaniami mogą być dodanie kolejnej metody, która będzie aktualizować mLastLocation w odpowiednim momencie, zmiana sygnatury tej metody aby przyjmowała 2 parametry i je porównywała (mogłaby to być wtedy metoda statyczna), zmiana nazwy metody żeby nie była myląca albo pewnie jeszcze kilka innych podejść ;)