Service.StartForeground Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Sobrecargas
| Nome | Description |
|---|---|
| StartForeground(Int32, Notification) |
Se o serviço for iniciado (em execução por meio de Context.startService(Intent)), faça com que esse serviço seja executado em primeiro plano, fornecendo a notificação contínua a ser mostrada ao usuário enquanto estiver nesse estado. |
| StartForeground(Int32, Notification, ForegroundService) |
Uma versão sobrecarregada de startForeground(int,Notification) com parâmetro foregroundServiceType adicional. |
StartForeground(Int32, Notification)
Se o serviço for iniciado (em execução por meio de Context.startService(Intent)), faça com que esse serviço seja executado em primeiro plano, fornecendo a notificação contínua a ser mostrada ao usuário enquanto estiver nesse estado.
[Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;)V", "")]
public void StartForeground(int id, Android.App.Notification? notification);
[<Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;)V", "")>]
member this.StartForeground : int * Android.App.Notification -> unit
Parâmetros
- id
- Int32
int: o identificador dessa notificação de acordo com NotificationManager.notify(int, Notification); não deve ser 0.
- notification
- Notification
Notificação: a notificação a ser exibida.
- Atributos
Comentários
Se o serviço for iniciado (em execução por meio de Context.startService(Intent)), faça com que esse serviço seja executado em primeiro plano, fornecendo a notificação contínua a ser mostrada ao usuário enquanto estiver nesse estado. Por padrão, os serviços iniciados são em segundo plano, o que significa que seu processo não receberá agendamento de CPU em primeiro plano (a menos que outra coisa nesse processo esteja em primeiro plano) e, se o sistema precisar matá-los para recuperar mais memória (como exibir uma página grande em um navegador da Web), eles poderão ser mortos sem muito dano. Você usará startForeground(int, Notification) se a execução do serviço for disruptiva para o usuário, como se o serviço estivesse executando a reprodução de música em segundo plano, para que o usuário notaria se a música parasse de ser reproduzida. Observe que chamar esse método não coloca o serviço no próprio estado iniciado, mesmo que o nome soe como ele. Você sempre deve chamar startService(Intent) primeiro para informar ao sistema que ele deve manter o serviço em execução e, em seguida, usar esse método para informá-lo para mantê-lo em execução com mais força.
Aplicativos direcionados a Build.VERSION_CODES de API. P ou posterior deve solicitar a permissão Manifest.permission.FOREGROUND_SERVICE para usar essa API.
Aplicativos criados com Build.VERSION_CODES de versão do SDK. P ou posterior pode especificar os tipos de serviço em primeiro plano usando o atributo R.attr.foregroundServiceType no elemento de serviço do arquivo de manifesto. O valor do atributo R.attr.foregroundServiceType pode ser vários sinalizadores ORed juntos.
Observação: começando com a versão do SDK Build.VERSION_CODES. S, aplicativos direcionados à versão do SDK Build.VERSION_CODES. S ou superior não têm permissão para iniciar serviços em primeiro plano em segundo plano. Veja as alterações de comportamento: aplicativos direcionados ao Android 12 para obter mais detalhes. Observação: começando com a versão do SDK Build.VERSION_CODES. UPSIDE_DOWN_CAKE, aplicativos direcionados à versão do SDK Build.VERSION_CODES. UPSIDE_DOWN_CAKE ou superior não têm permissão para iniciar serviços em primeiro plano sem especificar um tipo de serviço em primeiro plano válido no atributo de manifesto R.attr.foregroundServiceType. Veja as alterações de comportamento: aplicativos direcionados ao Android 14 para obter mais detalhes.
Consulte também:
Lançamentos: ForegroundServiceStartNotAllowedException se a API de destino do aplicativo for Build.VERSION_CODES. S ou posterior, e o serviço está impedido de se tornar um serviço em primeiro plano devido à restrição de plano de fundo.
Lançamentos: InvalidForegroundServiceTypeException se a API de destino do aplicativo for Build.VERSION_CODES. UPSIDE_DOWN_CAKE ou posterior e o atributo de manifesto R.attr.foregroundServiceType é definido como tipos inválidos(ou seja, ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE).
Lançamentos: MissingForegroundServiceTypeException se a API de destino do aplicativo for Build.VERSION_CODES. UPSIDE_DOWN_CAKE ou posterior e o atributo de manifesto R.attr.foregroundServiceType não está definido.
Lançamentos: SecurityException se a API de destino do aplicativo for Build.VERSION_CODES. UPSIDE_DOWN_CAKE ou posterior e não tem permissão para iniciar o serviço em primeiro plano com o tipo especificado no atributo de manifesto R.attr.foregroundServiceType.
Referência do Android para android.app.Service.startForeground.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.
Aplica-se a
StartForeground(Int32, Notification, ForegroundService)
Uma versão sobrecarregada de startForeground(int,Notification) com parâmetro foregroundServiceType adicional.
[Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;I)V", "", ApiSince=29)]
public void StartForeground(int id, Android.App.Notification notification, Android.Content.PM.ForegroundService foregroundServiceType);
[<Android.Runtime.Register("startForeground", "(ILandroid/app/Notification;I)V", "", ApiSince=29)>]
member this.StartForeground : int * Android.App.Notification * Android.Content.PM.ForegroundService -> unit
Parâmetros
- id
- Int32
int: o identificador dessa notificação de acordo com NotificationManager.notify(int, Notification); não deve ser 0.
- notification
- Notification
Notificação: a notificação a ser exibida. Esse valor não pode ser nulo.
- foregroundServiceType
- ForegroundService
int: deve ser um sinalizador de subconjunto dos sinalizadores R.attr.foregroundServiceType do atributo de manifesto; não deve ser ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE. O valor é 0 ou uma combinação do seguinte: ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE ServiceInfo.FOREGROUND_SERVICE_TYPE_DATA_SYNC ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PLAYBACK ServiceInfo.FOREGROUND_SERVICE_TYPE_PHONE_CALL ServiceInfo.FOREGROUND_SERVICE_TYPE_LOCATION ServiceInfo.FOREGROUND_SERVICE_TYPE_CONNECTED_DEVICE ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROJECTION ServiceInfo.FOREGROUND_SERVICE_ TYPE_CAMERA ServiceInfo.FOREGROUND_SERVICE_TYPE_MICROPHONE ServiceInfo.FOREGROUND_SERVICE_TYPE_HEALTH ServiceInfo.FOREGROUND_SERVICE_TYPE_REMOTE_MESSAGING ServiceInfo.FOREGROUND_SERVICE_TYPE_SYSTEM_EXEMPTED ServiceInfo.FOREGROUND_SERVICE_TYPE_SHORT_SERVICE ServiceInfo.FOREGROUND_SERVICE_TYPE_MEDIA_PROCESSING ServiceInfo.FOREGROUND_SERVICE_TYPE_SPECIAL_USE
- Atributos
Comentários
Uma versão sobrecarregada de startForeground(int,Notification) com parâmetro foregroundServiceType adicional. Aplicativos criados com Build.VERSION_CODES de versão do SDK. P ou posterior pode especificar os tipos de serviço em primeiro plano usando o atributo R.attr.foregroundServiceType no elemento de serviço do arquivo de manifesto. O valor do atributo R.attr.foregroundServiceType pode ser vários sinalizadores ORed juntos.
O parâmetro foregroundServiceType deve ser um sinalizador de subconjunto do que é especificado no atributo de manifesto R.attr.foregroundServiceType, caso contrário, uma IllegalArgumentException será gerada. Especifique o parâmetro foregroundServiceType como ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST para usar todos os sinalizadores especificados no atributo de manifesto foregroundServiceType.
Observação: começando com a versão do SDK Build.VERSION_CODES. S, aplicativos direcionados à versão do SDK Build.VERSION_CODES. S ou superior não têm permissão para iniciar serviços em primeiro plano em segundo plano. Veja as alterações de comportamento: aplicativos direcionados ao Android 12 para obter mais detalhes. Observação: começando com a versão do SDK Build.VERSION_CODES. UPSIDE_DOWN_CAKE, aplicativos direcionados à versão do SDK Build.VERSION_CODES. UPSIDE_DOWN_CAKE ou superior não têm permissão para iniciar serviços em primeiro plano sem especificar um tipo de serviço de primeiro plano válido no atributo de manifesto R.attr.foregroundServiceType e o parâmetro foregroundServiceType aqui não deve ser o ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE. Veja as alterações de comportamento: aplicativos direcionados ao Android 14 para obter mais detalhes.
Consulte também:
Lançamentos: ForegroundServiceStartNotAllowedException se a API de destino do aplicativo for Build.VERSION_CODES. S ou posterior, e o serviço está impedido de se tornar um serviço em primeiro plano devido à restrição de plano de fundo.
Lançamentos: InvalidForegroundServiceTypeException se a API de destino do aplicativo for Build.VERSION_CODES. UPSIDE_DOWN_CAKE ou posterior e o atributo de manifesto R.attr.foregroundServiceType ou o param foregroundServiceType é definido como tipos inválidos (i.e.ServiceInfo.FOREGROUND_SERVICE_TYPE_NONE).
Lançamentos: MissingForegroundServiceTypeException se a API de destino do aplicativo for Build.VERSION_CODES. UPSIDE_DOWN_CAKE ou posterior e o atributo de manifesto R.attr.foregroundServiceType não está definido e o param foregroundServiceType está definido como ServiceInfo.FOREGROUND_SERVICE_TYPE_MANIFEST.
Throws: IllegalArgumentException se form foregroundServiceType não for subconjunto do atributo de manifesto R.attr.foregroundServiceType.
Lançamentos: SecurityException se a API de destino do aplicativo for Build.VERSION_CODES. UPSIDE_DOWN_CAKE ou posterior e não tem permissão para iniciar o serviço em primeiro plano com o tipo especificado em foregroundServiceType. R.attr.foregroundServiceType.
Referência do Android para android.app.Service.startForeground.
Partes desta página são modificações baseadas no trabalho criado e compartilhado pelo Project Open Source do Open Source e usadas de acordo com os termos descritos na Creative Commons 2.5.