Red de conocimiento de abogados - Derecho de sociedades - Servicio Android (1) Iniciar y vincular servicio

Servicio Android (1) Iniciar y vincular servicio

El servicio (Servicio) es un componente operativo de larga duración que se ejecuta en segundo plano. No proporciona ninguna interfaz de usuario. Como componente al mismo nivel que la Actividad, todavía se ejecuta en el hilo principal.

Otros componentes pueden iniciar un Servicio. Cuando se inicia este Servicio, se ejecutará en segundo plano. Cabe señalar aquí que, dado que está en el hilo principal, necesitamos abrir otro hilo para ejecutarlo. nuestras operaciones que consumen mucho tiempo.

Además, un componente también puede vincularse a un Servicio para realizar la interacción entre componentes, e incluso puede realizar comunicación entre procesos IPC (Comunicación entre procesos).

El servicio puede realizar muchas tareas en segundo plano, como procesar transacciones de red, reproducir música, leer y escribir archivos o interactuar con un proveedor de contenido, etc.

Servicio local (Local)

Este servicio está adjunto al proceso principal en lugar de un proceso independiente, lo que ahorra recursos hasta cierto punto, además, porque el servicio local está en. el mismo proceso, no se requiere IPC ni AIDL. El bindService correspondiente será mucho más conveniente. Cuando se finalice el proceso principal, el servicio finalizará. Generalmente se utiliza en la reproducción de reproductores de música y otros servicios que no requieren un uso permanente.

Servicio remoto (Servicio remoto)

Este servicio es un proceso independiente y el formato de nombre de proceso correspondiente es el nombre del paquete más la cadena android:process que especifique. El método de definición general android: proceso=":servicio" es un proceso independiente, por lo que cuando el proceso donde se encuentra la Actividad se cierra, el servicio aún se está ejecutando y no se ve afectado por otros procesos, lo que favorece la prestación de servicios para múltiples procesos con mayor flexibilidad. Debido a que es un proceso independiente, ocupará ciertos recursos y es problemático utilizar AIDL para IPC. Generalmente utilizado para servicios del sistema, este tipo de servicio es residente.

Servicios iniciados por startService

Se utiliza para iniciar un servicio para realizar tareas en segundo plano sin comunicarse con los componentes. Para detener el servicio, utilice stopService. Cuando un componente de la aplicación, como una actividad, inicia un servicio llamando a startService(), el servicio está en el estado iniciado. Una vez iniciado, un servicio puede ejecutarse en segundo plano indefinidamente, incluso cuando el componente que lo inició haya sido destruido. Normalmente, un servicio iniciado realiza una única operación y no devuelve ningún resultado a la persona que llama.

Servicios iniciados por bindService

Los servicios utilizados para iniciar necesitan comunicarse. Para detener el servicio, utilice unbindService. Cuando un componente de la aplicación se vincula a un servicio llamando a bindService(), el servicio está en estado vinculado. Un servicio vinculado proporciona una interfaz cliente-servidor que permite que los componentes interactúen con el servicio, envíen solicitudes, obtengan resultados e incluso completen operaciones a través de la comunicación entre procesos IPC. Un servicio está vinculado sólo cuando otros componentes están vinculados a él. Se pueden vincular varios componentes a un servicio al mismo tiempo, pero cuando todos se desvinculan, el servicio se destruye.

2.BindService:

Si un Servicio se inicia llamando al método bindService en una Actividad, no importa cuántas veces se llame a bindService, el método onCreate del Servicio solo se ejecutará una vez. Y al mismo tiempo onStartCommand El método nunca se llama. Cuando se establece la conexión, el Servicio continuará ejecutándose a menos que se llame a unbindService para contactar el enlace, se desconecte o el Contexto en el que se llama al Servicio no existe (como la Actividad ha finalizado, es decir, el ciclo de vida del El servicio iniciado a través de bindService depende del contexto de inicio), el sistema detendrá automáticamente el servicio en este momento.

3.StartService Y BindService:

Cuando se inicia un Servicio (startService y enlazado (bindService) al mismo tiempo, el Servicio siempre se ejecutará en segundo plano e independientemente de la llamada. Varias veces, el método onCreate siempre se llamará solo una vez y la cantidad de llamadas a onStartCommand es consistente con la cantidad de llamadas a startService (el uso del método bindService no llamará a onStartCommand. Al mismo tiempo, llamar a unBindService no se detendrá). el Servicio, y se debe llamar a stopService o stopSelf del propio Servicio.

4. Detener el Servicio:

Cuando se finaliza un servicio (stopService, stopSelf, unbindService). ), se llamará al método onDestory, por lo que debemos borrar algo de trabajo (según el ciclo de vida del servicio, como por ejemplo: detener los subprocesos creados y en ejecución en el servicio)

1. Crear un servicio

Si solo está utilizando el método startService, entonces el método onBind puede ignorarse

2. Registre el servicio

3. Inicie el servicio

start:

bind

Los servicios vinculantes generalmente implican la comunicación entre componentes o procesos. Dado que se requiere comunicación, definitivamente necesitamos una conexión aquí. ServiceConnection es la conexión que necesitamos. Al transmitir Ibinder, podemos obtener el objeto Service Ibinder para realizar operaciones relacionadas.

En cuanto a los servicios fijos, es necesario mencionar el valor de retorno de onStartCommand del Servicio

andorid: nombre

adroid: exportado

android : habilitado

android: etiqueta

android: proceso

android: icono

android: permiso

Acerca de el servicio, cuando estamos desarrollando aplicaciones, si necesitamos ejecutarlas en segundo plano durante mucho tiempo y completar ciertas cosas de forma independiente, ¡utilice el Servicio!

Este artículo es una síntesis de: /p/1e49e93c3ec8 y algunos de mis propios puntos de vista sobre diferentes temas, para fines de estudio y revisión.

Servicio de recepción

Consulte Zihao /p/5505390503fa