Служба не будет лучшим использованием для этого. Службы работают в фоновом режиме, но работают в том же потоке, что и основной поток пользовательского интерфейса приложения. Это хорошо, если пользователь не взаимодействует напрямую с приложением. Например, если у вас есть приложение, которое загружает файл на сервер, у вас может быть кнопка, которая запускает службу, чтобы загрузить файл и закрыть действие для приложения, пока служба продолжает работать в фоновом режиме. Как только файл загружен, вы можете всплыть уведомление о том, что файл был загружен или просто отключить службу.
Служба, которая работает во время выполнения действия на переднем плане, может заблокировать действие. Таким образом, вы не хотите использовать Сервис для этой цели, поскольку пользовательский интерфейс не будет обновляться, пока служба загружает или загружает что-либо на сервер
То, что вы хотите, это AsyncTask. AsyncTask - это однопоточный обработчик потоков, который позволяет выполнять интенсивную работу при обновлении интерфейса.
http://developer.android.com/reference/android/os/AsyncTask.html
Если вы хотите делать это постоянно, AsyncTask может не работать. В этом случае вы можете использовать таймеры Java или стандартные потоки Java для обработки непрерывной работы. Просто обратите внимание, что вы НИКОГДА не хотите обновлять интерфейс из любого другого потока, кроме потока пользовательского интерфейса. Это в конечном итоге приведет к сбою приложения.