Android – Ejecutar en segundo plano – Service vs. standard java class

En Android, si quiero hacer algún trabajo de fondo, ¿cuál es la diferencia entre

Creando un Servicio para hacer el trabajo, y con la Actividad iniciar el Servicio VS. Crear una clase java estándar para hacer el trabajo, y tener la Actividad crear un objeto de la clase y invocar métodos, para hacer el trabajo en hilos separados.

Hacer sus propios hilos es excesivo, hay soluciones para esto, por lo que no tiene que preocuparse por las partes difíciles de la concurrencia. Echa un vistazo a AsyncTask o IntentService . Si usted va para un servicio por favor tenga en cuenta que su servicio se puede matar en cualquier momento.

Bueno, Android ofrece algunos métodos útiles para hacer hilos de trabajo fácilmente. Mire la definición de la clase Looper . Le permite enviar eventos a través de un Handler para ser ejecutados uno tras otro en otro hilo o transmitir mensajes entre hilos diferentes.

Un servicio no es nada lujoso. Crear un servicio es sólo una forma de decirle al sistema operativo que necesita hacer algún trabajo incluso cuando su actividad no está visible.

Dependiendo de la aplicación que esté construyendo, puede que no sea una opción.

Casi todas las aplicaciones de red tendrán parte de su funcionalidad en un Servicio para permitir al usuario cambiar la Actividad activa mientras se está descargando algo.

En un lector de RSS, por ejemplo, puede hacer clic en "Actualizar todo" y, dependiendo de la conexión de datos actual, puede tardar un poco más de lo que desea. Así que si quieres que el usuario pueda volver a la pantalla de inicio y hacer cualquier otra cosa mientras los archivos se están descargando tendrás que usar un servicio.

Un servicio le permite ejecutar tareas en segundo plano mientras el usuario no está en su actividad. Esto no significa que estará funcionando todo el tiempo. Compruebe el ciclo de vida del servicio .

BTW IntentService es un servicio.

  • ¿Cómo iniciar AccessibilityService?
  • BadParcelableException: ClaseNotFoundException al unmarshalling
  • Animar ImageView dentro de WindowManager en un servicio de Android
  • Gran uso de memoria en las notificaciones
  • ¿Es posible ejecutar mi servicio por tiempo indefinido?
  • GCM de Android SERVICE_NOT_AVAILABLE
  • Android - widget de actualización sobre el servicio con datos de la red. ¿El mejor enfoque?
  • En Android: ¿Cómo llamar a la función de la actividad de un servicio?
  • Eventos de apagado en Android
  • ¿Hay una alternativa onBackPressed () para un servicio?
  • Android: ¿Cómo repetir un servicio con AlarmManager cada 15 minutos, pero sólo se ejecuta de 8:00 AM a 18:00 PM?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.