with studio startservice servicio que intent detener bound bindservice activity android

studio - service intent android



cuándo es inteligente usar bindService y cuándo startService (2)

Esta puede ser una pregunta estúpida, pero me gustaría saber cuándo es inteligente usar bindService y cuándo usar startService .

Por ejemplo:

Si uso bindService con BIND_AUTO_CREATE , el servicio se iniciará y creará automáticamente como se escribe aquí: http://developer.android.com/reference/android/content/Context.html#BIND_AUTO_CREATE

¿Cuándo es inteligente utilizar bindService y cuándo startService ? Realmente no entiendo estos dos correctamente.


Estoy de acuerdo con @Ovidiu Latcu, pero con una nota importante: cuando se utilizan servicios enlazados, el servicio finaliza cuando finaliza la actividad que lo inició (si es la única actividad vinculada a ese servicio).

Por lo tanto, si desea ejecutar su servicio en segundo plano mientras la aplicación está en segundo plano (la actividad está pausada, por ejemplo, y no visible para el usuario), debe iniciar el servicio sin limitarse a él y comunicarse con BroadcastReceiver para ejemplo.


Normalmente utiliza bindService() si su componente llamante ( Activity ) necesitará comunicarse con el Service que está iniciando, a través de ServiceConnection . Si no desea comunicarse con el Service , puede usar simplemente startService() . Puede ver a continuación la diferencia entre el servicio y el servicio de enlace.

De los documentos:

Empezado

Un servicio se "inicia" cuando un componente de aplicación (como una actividad) lo inicia llamando a startService (). Una vez iniciado, un servicio puede ejecutarse en segundo plano indefinidamente, incluso si el componente que lo inició se destruye. Por lo general, un servicio iniciado realiza una sola operación y no devuelve un resultado a la persona que llama. Por ejemplo, puede descargar o cargar un archivo a través de la red. Cuando la operación finaliza, el servicio debe detenerse.

Ligado

Un servicio está "vinculado" cuando un componente de aplicación se une a él llamando a bindService (). Un servicio enlazado ofrece una interfaz cliente-servidor que permite que los componentes interactúen con el servicio, envíen solicitudes, obtengan resultados e incluso lo hagan a través de procesos con comunicación entre procesos (IPC). Un servicio enlazado se ejecuta solo mientras otro componente de la aplicación esté vinculado a él. Múltiples componentes pueden vincularse al servicio de una vez, pero cuando todos se desvinculan, el servicio se destruye.

Puedes leer más aquí: Servicios de Android , Servicios encuadernados