Um Service
é um componente de aplicação que pode executar operações de longa duração em segundo plano e não fornece uma interface ao usuário. Outro componente do aplicativo pode iniciar um serviço funcionando em segundo plano, mesmo se o usuário mudar para outro aplicativo. Além disso, um componente pode se ligar a um serviço para interagir com ele e até mesmo realizar a comunicação entre processos (IPC). Por exemplo, um serviço pode lidar com transações de rede, tocar música, executar arquivo de I/O, ou interagir com um provedor de conteúdo.
Porem a questão é: “Como iniciar um service no boot do Android?”
Neste caso precisamos de um Service e de um BroadcastReceiver que receberá a notificação do boot do sistema. Neste exemplo vamos criar duas classes: Servico.java e BootReceiver.java.
Veja abaixo como vai ficar nosso arquivo Manifest:
[...<application>...] <service android:name=".Service" /> <receiver android:name=".BootReciever"> <intent-filter > <action android:name="android.intent.action.BOOT_COMPLETED"/> </intent-filter> </receiver> [...</application>...] <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
Acima declaramos nosso Service, BootReceiver e a permissão de RECEIVE BOOT. Note que nosso receiver contem o intent-filter com a ação de BOOT_COMPLETED, é esta tag que vai ficar ‘ouvindo’ o boot do sistema terminar, assim chamando o BootReceiver.
Abaixo segue a classe BootReceiver:
public class BootReciever extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent myIntent = new Intent(context, Service.class); context.startService(myIntent); } }
Segue projeto exemplo: (aqui)
Boa noite, cara segui os seus passos, mas infelizmente, na hora que abre o meu aparelho ele vem bloqueado, somente após o desbloqueio e que aparece a minha aplicação, essa classe BootReciever teria que ser chamado em algum lugar, ou somente criado ela, se puder me ajudar… desde ja agradeço a sua atenção.
para aparecer antes da tela de bloqueio? acredito que só tirando a tela de bloqueio.
Boa Noite, meu aplicativo esta exibindo a mensagem ‘Unfortunatety appname has stopped’, ao iniciar o aparelho, qual pode ser o motivo ? Obrigado
Me passe o log de erro que aparece no Monitor(DDMS), só com ele para saber qual o problema.