El dia de hoy vamos a ver como crear un servicio android en background para que se ejecute en segundo plano en nuestras aplicaciones para esta plataforma móvil, te mostraré como crear un servicio, como inicarlo y como detenerlo, de paso daremos un repaso a como ejecutar una tarea en segundo plano con la clase AsyncTask.
Ya hemos visto como subir archivos a un servidor desde android subir archivos a un servidor desde android y ahora toca el turno de como crear, iniciar y detener un servicio en esta misma plataforma.
Antes que nada quisiera comenzar con decirte que los servicios en background son muy importantes, en caso reciente necesite por ejemplo que una app android estuviera constantemente leyendo una base de datos, fue entonces que recurri a los background services de android.
Como crear una clase Service
Para crear un servicio android basta con crear una clase que herede de la clase Service y sobreescribimos los metodos onBind(), onCreate(), onStart() y onDestroy().

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.
Udemypublic class Notificaciones extends Service { @Override public IBinder onBind(Intent intent) { // TODO Auto-generated method stub return null; } @Override public void onCreate() { } @Override public void onStart(Intent intent, int startId) { } @Override public void onDestroy() { } }
Ahora en nuestro ejemplo vamos a necesitar que al iniciar el servicio se mande a realizar una tarea en background con la clase AsyncTask por lo que dentro del metodo onStart necesitamos agregar la siguiente linea:
new ChecarNotificaciones().execute();
Tambien deberás agregar esta nueva clase en nuestro manifest como un servicio:
<service android:name="com.tupaquete.app.Notificaciones" android:enabled="true" />
Un repaso a la clase AsyncTask
Nuestra clase ChecharNotificaciones hereda de AsyncTask que sirve para ejecutar tareas en background, en el metodo doInBackground procesaremos nuestra tarea y en el metodo onPostExecute realizaremos todo aquello para cuando nuestra tarea termine de procesar, aqui es donde tambien agregaremos un codigo para en 10 segundos volver a ejecutar esta tarea.
private class ChecarNotificaciones extends AsyncTask<String, String, String> { @Override protected String doInBackground(String... params) { //NUESTRO CODIGO return responseStr; } @Override protected void onPostExecute(String result) { //NUESTRO CODIGO new Handler().postDelayed(new Runnable() { public void run() { new ChecarNotificaciones().execute(); } }, 10000); super.onPostExecute(result); } }
Como iniciar un servicio android
Para iniciar un servicio en android basta con crear un metodo que realice un nuevo intent a la clase de tipo Service y llamar la funcion startService.
iniciarServicioNotificaciones(); public void iniciarServicioNotificaciones(){ stopService(new Intent(getApplicationContext(), Notificaciones.class)); Intent intentNoti = new Intent(this, Notificaciones.class); startService(intentNoti); }
Como detener un servicio android
Para detener el servicio unicamente basta con llamar a la función stopService con el intent de la clase de tipo Service.
stopService(new Intent(getApplicationContext(), Notificaciones.class));
Cualquier duda o comentario sobre como crear un servicio android puedes dejarme un comentario y con gusto lo reviso.
Saludos!