Android-теория: разобраться с BroacastReceiver и LocationListener?
держать в бэкграунде сервис с апдейтами координат (особенно GPS), когда ваше приложение не активно, есть плохой тон, т.к. это сильно садит батарею.
Почитайте эту статью, если еще не читали.
Там реализован более хитрый алгоритм получения координат. Он всегда наиболее быстрым и точным способом старается получить последние координаты, при этом минимизируется нагрузка на батарею.
Сохранять данные нужно именно из сервиса, а не активити, т.к. она может быть прибита системой в любой момент времени. 
В onResume() активити должна спрашивать актуальные данные и отрисовывать их на карте.