Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.
sintaxe:
<service android:description="string resource"
         android:directBootAware=["true" | "false"]
         android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:foregroundServiceType=["camera" | "connectedDevice" |
                                        "dataSync" | "location" | "mediaPlayback" |
                                        "mediaProjection" | "microphone" | "phoneCall"]
         android:icon="drawable resource"
         android:isolatedProcess=["true" | "false"]
         android:label="string resource"
         android:name="string"
         android:permission="string"
         android:process="string" >
    . . .
</service>
contido em:
<application>
pode conter:
<intent-filter>
<meta-data>
descrição:
Declara um serviço (uma subclasse Service) como um dos componentes do aplicativo. Diferente das atividades, os serviços não possuem uma interface visual do usuário. Eles são usados para implementar operações de longa execução em segundo plano ou uma API de comunicação avançada que pode ser chamada por outros aplicativos.

Todos os serviços precisam ser representados por elementos <service> no arquivo de manifesto. Os serviços não declarados nesse arquivo não ficam visíveis ao sistema e nunca são executados.

Observação: no Android 8.0 (nível 26 da API) e versões mais recentes, o sistema impõe limitações ao que o app pode fazer enquanto está sendo executado em segundo plano. Para mais informações, consulte os guias sobre limites de execução em segundo plano e limites de localização em segundo plano.

atributos:
android:description
É uma string que descreve o serviço para os usuários. O rótulo é definido como uma referência a um recurso de string, para que possa ser localizado como outras strings na interface do usuário.
android:directBootAware

Indica se o serviço pode realizar inicialização direta, ou seja, se pode ou não ser executado antes do usuário desbloquear o dispositivo.

Observação: durante a inicialização direta, um serviço no aplicativo só pode acessar os dados no armazenamento protegido do dispositivo.

O valor padrão é "false".

android:enabled
Se o serviço pode ou não ser instanciado pelo sistema: "true" se puder, e "false" caso contrário. O valor padrão é "true".

O elemento <application> tem o próprio atributo enabled, que se aplica a todos os componentes do aplicativo, inclusive serviços. Tanto o atributo <application> quanto o <service> precisam ser "true" (ambos são por padrão) para que o serviço seja ativado. Se um dos dois for "false", o serviço vai ser desativado e não vai poder ser instanciado.

android:exported
Os componentes de outros aplicativos podem invocar ou não o serviço ou interagir com ele: "true" se possível e "false" caso contrário. Quando o valor for "false", somente os componentes do mesmo aplicativo ou aplicativos com o mesmo ID de usuário vão poder iniciar o serviço ou serem vinculados a ele.

O valor padrão depende do serviço conter filtros de intents. A ausência de filtros significa que o serviço pode ser invocado somente especificando o nome exato da própria classe. Isso indica que o serviço se destina somente ao uso interno do aplicativo (já que outros não saberiam o nome da classe). Portanto, neste caso, o valor padrão é "false". Por outro lado, a presença de pelo menos um filtro implica que o serviço é de uso externo. Portanto, o valor padrão é "true".

Usar este atributo não é a única maneira de limitar a exposição de um serviço a outros aplicativos. Você também pode usar uma permissão para limitar as entidades externas que podem interagir com o serviço (veja o atributo permission).

android:foregroundServiceType

Especifique o serviço como um serviço em primeiro plano que satisfaça um caso de uso específico. Por exemplo, um tipo de serviço em primeiro plano de "location" indica que um app acessa a localização atual do dispositivo, geralmente para continuar uma ação iniciada pelo usuário relacionada a essa informação.

Você pode atribuir vários tipos de serviço em primeiro plano a um serviço específico.

android:icon
É um ícone que representa o serviço. Esse atributo precisa ser definido como uma referência a um recurso drawable que contém a definição da imagem. Se ele não for definido, o ícone especificado para o aplicativo como um todo vai ser usado. Consulte o atributo icon do elemento <application>.

O ícone do serviço, definido aqui ou pelo elemento <application>, é também o ícone padrão para todos os filtros de intents do serviço. Consulte o atributo icon do elemento <intent-filter>.

android:isolatedProcess
Se configurado como "true" (verdadeiro), esse serviço vai ser executado em um processo especial isolado do restante do sistema e não vai ter permissões próprias. A única comunicação com o serviço vai ocorrer pelo serviço da API (vinculação e inicialização).
android:label
É um nome para o serviço que pode ser exibido aos usuários. Se esse atributo não for definido, o rótulo definido para o aplicativo como um todo vai ser usado. Consulte o atributo label do elemento <application>.

O rótulo do serviço, definido aqui ou pelo elemento <application>, é também o rótulo padrão para todos os filtros de intents do serviço. Consulte o atributo label do elemento <intent-filter>.

O rótulo é definido como referência a um recurso de string, para que possa ser localizado da mesma forma que as outras strings da interface do usuário. No entanto, para facilitar o desenvolvimento do aplicativo, ele também pode ser definido como uma string bruta.

android:name
É o nome da subclasse Service que implementa o serviço. Ele precisa ser um nome de classe totalmente qualificado como, por exemplo, "com.example.project.RoomService". No entanto, como uma abreviação, se o primeiro caractere do nome for um ponto, por exemplo, ".RoomService", ele vai ser anexado ao nome do pacote especificado no elemento <manifest>.

Depois de publicar o aplicativo, não mude esse nome (link em inglês), a menos que você tenha definido android:exported="false".

Não há padrão. O nome precisa ser especificado.

android:permission
É o nome de uma permissão que uma entidade precisa ter para iniciar o serviço ou se vincular a ele. Se um autor da chamada de startService(), bindService() ou stopService() não receber essa permissão, o método não vai funcionar e o objeto Intent não vai ser entregue ao serviço.

Se o atributo não for definido, a permissão definida pelo atributo <application> do elemento permission se aplica ao serviço. Se nenhum atributo for definido, nenhuma permissão vai proteger o serviço.

Para mais informações sobre permissões, consulte a seção Permissões na introdução e outro documento, chamado Segurança e permissões.

android:process
É o nome do processo em que o serviço precisa ser executado. Normalmente, todos os componentes de um aplicativo são executados no processo padrão criado para ele. Ele tem o mesmo nome do pacote do aplicativo. O atributo process do elemento <application> pode definir um padrão diferente para todos os componentes. Porém, o componente pode modificar o padrão com o próprio atributo process, permitindo que você espalhe o aplicativo por vários processos.

Se o nome designado para esse atributo começar com dois-pontos (":"), quando necessário, um novo processo, privado para o aplicativo, vai ser criado e o serviço vai ser executado nesse processo. Se o nome do processo começar com um caractere em letra minúscula, o serviço vai ser executado em um processo global com esse nome, desde que tenha permissão. Isso permite que os componentes de diferentes aplicativos compartilhem um processo, reduzindo o uso de recursos.

veja também:
<application>
<activity>
introduzido em:
Nível 1 da API