¿Dónde debo usar Servicio, AsyncTask y Broadcast Receiver?

Estoy en un poco de confusión donde en qué caso necesito utilizar componentes de aplicación como Service, asyncTask y Broadcast Receiver.

¿Puede alguien explicar cuál es la diferencia exacta entre éstos y dónde necesito usar estos componentes?

AsyncTask es una forma amigable de crear un nuevo subproceso que realiza algún trabajo asynchronusly.

Un receptor de difusión es algo así como un controlador de eventos para eventos del sistema. Se puede ejecutar en segundo plano y realizar una acción cuando sucede algo, como apagar el teléfono o encender wifi ..

Un servicio es sólo una aplicación que funciona en segundo plano (como un daemon) y sirve información a una aplicación o simplemente realiza tareas.

Lo siento por mi inglés, trato de dejarme entender, pero no es mi lengua materna

Voy a ir directamente a donde he aplicado estos tres en mis proyectos hasta el momento:

1.Service: Algo que usted desea realizar en el fondo sin ninguna interacción del usuario. Por ejemplo el buscar datos de la localización continuamente o el envío de algunos datos continuos a su server.You puede también utilizar servicios para realizar tareas cada vez unidades de tiempo. Por ejemplo enviar diez minutos Actualizaciones de fondo.

2.AsyncTask: Hacer un nuevo hilo de ejecución. El mejor uso que he encontrado hasta ahora es llamar a un servicio web .. Hice lo siguiente usando un AsyncTask para las llamadas de servicio web 1. Barra de progreso de visualización en onPreExecute () 2.Perform mi web Las llamadas de servicio en doInBackground (Params …) 3.In onPostExecute (Resultado) actualizar la interfaz de usuario o hacer algunas otras cosas con la respuesta del servicio web.

3.BroadCastRecievers son como recievers globales para tu app. Pueden escuchar tanto los eventos del sistema como un reinicio del teléfono o un evento personalizado dentro de tu app.I los usó para iniciar un servicio cuando se reinició el teléfono, que se detuvo cuando apagamos el teléfono.

Un servicio y sus variables de memoria locales se cargan en la memoria y siempre se están ejecutando

Un receptor BroadCast sólo se garantiza que esté en la memoria y funcionando mientras procesa un evento.

Un Broadcastreceiver puede ser eliminado de la memoria por el sistema operativo si la memoria es baja.

"Servicio" es un componente que se ejecuta en segundo plano, sin interactuar con el usuario. Cada desarrollador puede crear nuevos servicios en su aplicación. Los servicios admiten la verdadera multitarea para Android, ya que pueden ejecutarse en su propio proceso.

"AsyncTask" encapsula la creación de Threads y Handlers. Un AsyncTask se inicia a través del método execute (). El método execute () llama al método doInBackground () y onPostExecute (). Principalmente el propósito principal de descargar algo sin la interacción del usuario.

"Broadcast receiver" es una clase que extiende BroadcastReceiver y que está registrada como un receptor en una aplicación Android a través del archivo AndroidManifest.xml (o mediante código). Puede registrar un BroadcastReceiver dinámicamente a través del método Context.registerReceiver (). La clase BroadcastReceiver define el método onReceive (). Solo durante este método su objeto BroadcastReceiver será válido, después el sistema Android puede reciclar BroadcastReceiver.

Déjeme explicar con un usecase, así que usted lo entiende mejor –

  1. AsyncTask – ¿Quieres obtener algo del servidor, o publicar algo en el servidor? Si lo hacemos en el hilo principal, el usuario no podrá interactuar con la aplicación. Asynctask se utiliza, y realiza la actividad de red en un subproceso diferente.

  2. Servicio – ¿Quieres administrar algo en segundo plano? Como obtener la ubicación de los usuarios cada 10 minutos o 1 hora, o alertar al usuario cuando está cruzando un área en particular sobre la base de la ubicación. El servicio hace que la aplicación se ejecute incluso cuando la aplicación no se abre (el usuario puede estar haciendo otra cosa, o el teléfono está bloqueado, el servicio sigue funcionando en segundo plano).

  3. Broadcast Receiver – Suponga que está rastreando la ubicación y almacenando localmente (cuando Internet está inactivo). No cuando el Internet está para arriba, usted desea enviar todos ellos. Así que se registra con el sistema operativo, que desea escuchar para ese evento específico, y obtendrá el control. O cuando desea que el servidor sepa que el dispositivo se reinicia, entonces sólo tenemos que implementarlo.

¿Claro?

  • Comprobación de la conexión a Internet con el servicio en android
  • Cómo comunicarse entre un receptor de difusión de Android y un RemoteService
  • Ninguna llamada a onStartCommand () sigue al reinicio de un servicio bloqueado en Android 2.3
  • Lectura de múltiples características de un dispositivo BLE de forma sincrónica (método recomendado para Android)
  • ¿Cómo utilizo Android SpeechRecognizer como servicio?
  • Reconocimiento de voz como servicio de fondo
  • Reinicio automático de la aplicación tras la actualización del mercado
  • Análisis de fondo wifi en Android
  • ¿Por qué utilizar un servicio Android?
  • Android: ¿Cómo usar mediaController en la clase de servicio?
  • ¿Sigue funcionando un servicio incluso cuando el teléfono está dormido?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.