Crear un servicio android en background

Crear un servicio android en background

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().


¿Sabías que?

¿Necesitas aprender algo nuevo ? Ve a Udemy, busca el tema del que quieres aprender, selecciona el curso para ti y continua con tu aprendizaje.

Udemy

public 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!

Clic para valorar esta información
[Total: 0 Promedio: 0]