Eu tenho o seguinte cenário em meu aplicativo. Não há UI em meu aplicativo; em vez disso, há um serviço que inicia na inicialização e será executado continuamente.
Como posso configurar meu arquivo de manifesto sem uma atividade principal? Posso iniciar meu aplicativo sem qualquer atividade? E ao lançar meu aplicativo, meu serviço deve começar. Isso é possível?
Não quero fazer uma atividade translúcida para iniciar o serviço.
Respostas:
Você disse que não queria usar uma atividade translúcida, mas essa parece ser a melhor maneira de fazer isso:
Theme.Translucent.NoTitleBar
.setContentView()
.onCreate()
, comece seu serviço comstartService()
.finish()
assim que iniciar o serviço.Em outras palavras, sua atividade não precisa estar visível; ele pode simplesmente verificar se o serviço está em execução e, em seguida, sair, o que parece o que você deseja.
Eu recomendo fortemente mostrar pelo menos uma notificação do Toast indicando ao usuário que você está iniciando o Serviço, ou que ele já está em execução. É uma experiência muito ruim para o usuário ter um ícone de inicialização que parece não fazer nada quando você pressiona.
fonte
Sim, você pode fazer isso apenas criando um
BroadcastReceiver
que chame seuService
quando seu aplicativo for inicializado. Aqui está uma resposta completa dada por mim.Android - iniciar serviço na inicialização
Se você não quiser nenhum ícone / iniciador para seu aplicativo, você também pode fazer isso, apenas não crie nenhuma atividade com
Apenas declare seu
Service
como declarado normalmente.fonte
Service
inicialização, mas deseja saber como não ter o principalActivity
, mas simplesmente certifique-se de que oService
está executando quando o ícone do iniciador for pressionado.A razão para fazer um aplicativo sem atividade ou serviço pode ser fazer um aplicativo Homescreen Widget que não precisa ser iniciado.
Depois de iniciar um projeto, não crie nenhuma atividade. Depois de criar o projeto, basta clicar em executar. Estúdio Android dirá
No default activity found
.Clique em Editar configuração (no menu Executar ) e na parte da opção Iniciar defina o valor Iniciar como Nada . Em seguida, clique em ok e execute o aplicativo.
( Como não há atividade do iniciador, nenhum aplicativo será mostrado no menu Aplicativos. ).
fonte
Android Studio versão 2.3
Você pode criar um serviço sem uma atividade principal, seguindo algumas etapas fáceis. Você poderá instalar este aplicativo por meio do Android Studio e depurá-lo como um aplicativo normal.
Primeiro, crie um projeto no Android Studio sem uma atividade. Em seguida, crie sua classe de serviço e adicione o serviço ao seu AndroidManifest.xml
Agora, no menu suspenso ao lado do botão "Executar" (seta verde), vá em "editar configurações" e em "Opções de inicialização" escolha "Nada". Isso permitirá que você instale seu serviço sem que o Android Studio reclame por não ter uma atividade principal.
Depois de instalado, o serviço NÃO estará em execução, mas você poderá iniciá-lo com este comando adb shell ...
Pode verificar se está funcionando com ...
Ainda não tentei, mas provavelmente você também pode fazer com que o Android Studio inicie o serviço automaticamente. Isso seria feito no menu "Editar configurações".
fonte