The Android Developer Challenge is back! Submit your idea before December 2.

<service>

sintaxe:
<service android:description="string resource"
         android:directBootAware=["true" | "false"]
         android:enabled=["true" | "false"]
         android:exported=["true" | "false"]
         android:foregroundServiceType=["connectedDevice" | "dataSync" |
                                        "location" | "mediaPlayback" | "mediaProjection" |
                                        "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. Diferentemente 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. Qualquer serviço não declarado nesse arquivo não será visto pelo sistema e nunca será executado.

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

Indica se o serviço é apto a realizar inicialização direta, ou seja, se pode ser executado antes de o usuário desbloquear o dispositivo.

Observação: durante a Inicialização direta, um serviço no seu aplicativo só poderá acessar os dados no armazenamento protegido do dispositivo.

O valor padrão é "false".

android:enabled
Se o serviço puder ser instanciado pelo sistema, será "true". Caso contrário, será "false". 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. Os atributos <application> e <service> precisam ambos ser "true" (como são por padrão) para que o serviço seja ativado. Se for "false", o serviço será desativado e não poderá ser iniciado.

android:exported
Se os componentes de outros aplicativos puderem chamar o serviço ou interagir com ele, o valor será "true". Caso contrário, será "false". Quando o valor for "false", somente os componentes do mesmo aplicativo ou aplicativos com o mesmo código de usuário poderão iniciar o serviço ou serem vinculados a ele.

O valor padrão depende de o 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). Por isso, nesse caso, o valor padrão é "false". Por outro lado, a presença de pelo menos um filtro implica que o serviço se destina ao uso externo. Assim 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 (consulte 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 aplicativo 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 específico.

android:icon
É um ícone que representa o serviço. Esse atributo precisa ser definido como referência a um recurso drawable contendo a definição da imagem. Se não for definido, será usado o ícone especificado para o aplicativo como um todo (consulte o atributo <application> do elemento icon).

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 <intent-filter> do elemento icon).

android:isolatedProcess
Se configurado como verdadeiro, esse serviço será executado em um processo especial isolado do restante do sistema e não possuirá permissões próprias. A única comunicação com o serviço ocorrerá por meio da API Service (vinculação e inicialização).
android:label
É um nome para o serviço que pode ser exibido para os usuários. Se o atributo não for definido, será usado o conjunto de rótulos para o aplicativo como um todo (consulte o atributo <application> do elemento label).

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 <intent-filter> do elemento label).

O rótulo precisa ser definido como referência a um recurso de string, assim ele poderá ser localizado como outras strings na interface do usuário. No entanto, como conveniência durante o desenvolvimento do aplicativo, ele também poderá ser definido como uma string bruta.

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

Não altere o nome do aplicativo depois de publicá-lo (a menos que você tenha definido android:exported="false").

Não há nenhum valor padrão. É preciso especificar o nome.

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

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

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

android:process
É o nome do processo em que o serviço deve ser executado. Normalmente, todos os componentes de um aplicativo são executados no processo padrão criado para ele. O nome é o mesmo do pacote de aplicativos. O atributo <application> do elemento process pode definir um nome 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 seu aplicativo por vários processos.

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

veja também:
<application>
<activity>
introduzido na:
API de nível 1