Ваш метод getLastKnownLocation
, скорее всего, потерпит неудачу, когда вы выключите и включите свое устройство.
И я вижу, что вы вызываете его, прежде чем подписаться на лист обновления местоположения:
mLoc=getLastKnownLocation(); //<<<<<<<<<<<<<
mlocListener = new LocListener();
mLocMgr.requestLocationUpdates(bestProvider, 0, 0, mlocListener);
Зачем вам нужно звонить getLastKnownLocation()
?Он не будет работать сразу после запуска вашего устройства.
Когда вы используете карту Google, он изящно пытается прослушать обновление местоположения.И, как только он получит хотя бы одно обновление местоположения, ваш getLastKnownLocation
начнет работать.
Я вижу, что ваша архитектура нуждается в переосмыслении (если имена ваших методов соответствуют)
Это должновызываться ТОЛЬКО ОДИН РАЗ, в каком-то подходящем месте, когда запускается ваше приложение.
mLocMgr.requestLocationUpdates(bestProvider, 0, 0, mlocListener);
Затем выполните все необходимые обновления в onLocationChanged(Location location)