при перезагрузке телефона все непостоянные данные будут очищаться как переменные. Если вы хотите сохранить свое местоположение, вам следует использовать database / sharedPreferences.
Кроме того, вы можете получить null
location.So вы должны продолжать проверку для обработки.
Отредактировано
Вы можете использовать класс Timer.
Попробуй так:
Timer timer1;
LocationManager lm = (LocationManager) context.getSystemService(Context.LOCATION_SERVICE);
lm.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, locationListener);
timer1=new Timer();
timer1.schedule(new GetLastLocation(), 20000);
Следующий код будет выполнен через 20 секунд.
class GetLastLocation extends TimerTask {
@Override
public void run() {
timer1.cancel();
lm.removeUpdates(locationListener)
Location loc=lm.getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
}
}