Да, лучшее решение для непрерывной работы - это поставить задачу в Сервис.
Теперь, что касается обновлений вашего представления, какой уровень API вы используете? Если вы используете 3.x +, вам будет полезно взглянуть на Loaders, так как они сразу обновят ваш взгляд на изменения базы данных.
Для всех остальных уровней API одним из решений является регистрация действий в качестве слушателей вашего сервиса. Когда служба завершает обновление базы данных, отправляйте сообщение всем зарегистрированным слушателям этой службы. Однако, когда вы делаете это, вам нужно убедиться, что вы зарегистрировали активность как слушатель в onResume и отменили регистрацию в onPause, чтобы избежать любых ситуаций с нулевым указателем.