Red de conocimiento del abogados - Ley de patentes - Cómo iniciar y cerrar Servicio en Android y explicación de funciones

Cómo iniciar y cerrar Servicio en Android y explicación de funciones

Inicio:

//Primero registre el servicio

android:name="com.wangdeyu.service.MusicService "

android:exported="false" >>p>

//Iniciar servicio

Intent service=new Intent(" com.abc " );

startService(servicio);

//Ciclo de vida del servicio

①onCreate() Crear servicio

②onStart(Intento de intención , int startId) Iniciar servicio

③onDestroy() Destruir servicio

//Cerrar servicio

stopService(service);

Vida de Servicio Hay menos métodos periódicos que Actividad, solo onCreate, onStart, onDestroy

Tenemos dos formas de iniciar un Servicio y su impacto en el ciclo de vida del Servicio es diferente.

1 A través de startService, es del tipo anterior

El servicio pasará por onCreate --> onStart

Cuando detenga el servicio, se activará directamente enDestroy

Si la persona que llama sale directamente sin llamar a stopService, el servicio siempre se ejecutará en segundo plano.

La persona que llama aún puede detener el servicio la próxima vez que se levante.

2 A través de bindService

El servicio solo se ejecutará enCreate. En este momento, la persona que llama y el servicio están unidos.

Si la persona que llama sale, Srevice llamará a onUnbind. -->onDestroyed

La llamada unión significa vida o muerte.

Nota: El método onCreate del Servicio solo se llamará una vez.

Es decir, no importa cuántas veces inicies el Servicio y vincules el Servicio, el Servicio solo se creará una vez.

Si se vincula primero, el método onStart del servicio se ejecutará directamente al iniciar.

Si se inicia primero, el método onBind se ejecutará directamente al vincularse. Si se vincula primero, no puede detenerlo.

Solo puede UnbindService primero y luego StopService, por lo que existe una diferencia entre iniciar o vincular primero.

Los servicios en Android son similares a los servicios en Windows. Los servicios generalmente no tienen interfaces de operación de usuario, se ejecutan en el sistema y los usuarios no los descubren fácilmente.

El servicio no puede ejecutarse por sí solo y debe iniciarse llamando al método Context.startService() o Context.bindService().

Ambos métodos pueden iniciar el Servicio, pero sus escenarios de uso son diferentes.

Utilice el método startService() para habilitar el servicio. No existe ninguna relación entre la persona que llama y el servicio.

Incluso si la persona que llama sale, el servicio sigue ejecutándose. Utilice el método bindService () para habilitar el servicio. La persona que llama y el servicio están vinculados. Una vez que la persona que llama sale, el servicio finalizará. Esto tiene la característica de "no querer vivir al mismo tiempo, pero debe morir". al mismo tiempo".

Si planea utilizar el método Context.startService() para iniciar el servicio, cuando el servicio no se haya creado, el sistema primero llamará al método onCreate() del servicio,

y luego llame al método onStart(). Si el servicio se creó antes de llamar al método startService(), llamar al método startService() varias veces no dará como resultado múltiples creaciones del servicio,

pero sí múltiples llamadas a onStart() método. Un servicio iniciado utilizando el método startService() solo puede llamar al método Context.stopService() para finalizar el servicio. Cuando finalice el servicio, se llamará al método onDestroy().

Si planea utilizar el método Context.bindService() para iniciar el servicio, cuando el servicio no se haya creado, el sistema primero llamará al método onCreate() del servicio,

y luego llame al método onBind(). En este momento, la persona que llama y el servicio están vinculados. Si la persona que llama sale, el sistema primero llamará al método onUnbind() del servicio y luego llamará al método onDestroy(). Si el servicio se ha vinculado antes de llamar al método bindService(),

Llamar al método bindService() varias veces no dará como resultado múltiples creaciones y vinculaciones del servicio (es decir, onCreate() y onBind). () métodos y no se llamarán varias veces).

Si la persona que llama quiere desvincular el servicio que está vinculado, puede llamar al método unbindService(). Llamar a este método también hará que el sistema llame al método onUnbind()-->onDestroy(). servicio.