Context.StartService(Intent) Método

Definición

Solicite que se inicie un servicio de aplicación determinado.

[Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")]
public abstract Android.Content.ComponentName? StartService (Android.Content.Intent? service);
[<Android.Runtime.Register("startService", "(Landroid/content/Intent;)Landroid/content/ComponentName;", "GetStartService_Landroid_content_Intent_Handler")>]
abstract member StartService : Android.Content.Intent -> Android.Content.ComponentName

Parámetros

service
Intent

Identifica el servicio que se va a iniciar. La intención debe ser totalmente explícita (proporcionando un nombre de componente). Los valores adicionales se pueden incluir en los extras de intención para proporcionar argumentos junto con esta llamada de inicio específica.

Devoluciones

Si el servicio se está iniciando o ya se está ejecutando, se devuelve el ComponentName del servicio real que se inició; de lo contrario, si el servicio no existe null se devuelve.

Atributos

Excepciones

Comentarios

Solicite que se inicie un servicio de aplicación determinado. La intención debe contener el nombre de clase completo de una implementación de servicio específica que se va a iniciar o un nombre de paquete específico al destino. Si se especifica la intención, registra una advertencia sobre esto. En este caso, se puede usar cualquiera de los varios servicios coincidentes. Si este servicio aún no se está ejecutando, se creará una instancia e iniciará (creando un proceso para él si es necesario); si se está ejecutando, sigue ejecutándose.

Cada llamada a este método dará lugar a una llamada correspondiente al método del servicio de android.app.Service#onStartCommand destino, con la <intención< var>/var> especificada aquí. Esto proporciona una manera cómoda de enviar trabajos a un servicio sin tener que enlazar y llamar a en su interfaz.

El uso de startService() invalida la duración predeterminada del servicio administrada por #bindService: requiere que el servicio permanezca en ejecución hasta #stopService que se llame a , independientemente de si los clientes están conectados a él. Tenga en cuenta que las llamadas a startService() no anidan: independientemente de cuántas veces llame a startService(), se detendrá una sola llamada a #stopService .

El sistema intenta seguir ejecutando servicios en la medida de lo posible. La única vez que se deben detener es si la aplicación en primer plano actual usa tantos recursos que el servicio debe eliminar. Si se produce algún error en el proceso del servicio, se reiniciará automáticamente.

Esta función iniciará SecurityException si no tiene permiso para iniciar el servicio especificado.

<div class="caution">

<nota fuerte>:</strong> Cada llamada a startService() da como resultado un trabajo significativo realizado por el sistema para administrar el ciclo de vida del servicio alrededor del procesamiento de la intención, lo que puede tardar varios milisegundos de tiempo de CPU. Debido a este costo, startService() no se debe usar para la entrega de intenciones frecuentes a un servicio y solo para programar un trabajo significativo. Se usa #bindService bound services para llamadas de alta frecuencia.

A partir de la versión android.os.Build.VERSION_CODES#Odel SDK, las aplicaciones destinadas a la versión android.os.Build.VERSION_CODES#O del SDK o superior no pueden iniciar servicios en segundo plano desde segundo plano. Vea

Límites de ejecución en segundo plano para obtener más detalles.

<nota fuerte>:</strong> A partir de la versión android.os.Build.VERSION_CODES#Sdel SDK, las aplicaciones destinadas a la versión android.os.Build.VERSION_CODES#S del SDK o superior no pueden iniciar servicios en primer plano desde segundo plano. Vea

Cambios de comportamiento: aplicaciones destinadas a Android 12

para obtener más detalles. </Div>

Documentación de Java para android.content.Context.startService(android.content.Intent).

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código Project y que se usan según los términos Creative Commons 2.5 Attribution License.

Se aplica a

Consulte también

  • StopService(Intent)
  • <xref:Android.Content.Context.BindService(Android.Content.Intent%2c+Android.Content.IServiceConnection%2c+Android.Content.IServiceConnection)>