Os serviços são executados em segundo plano por tempo indeterminado , geralmente eles tem um alto consumo de recursos, memoria e CPU. Não há interação com o usuário e não precisa de interface gráfica.
Eles podem ser utilizados para fazer download de alguma informação, fazer verificações no sistema, um reprodutor de MP3 entre outros processos demorados sem que o usuário perceba.
Atravez deste método o sistema verifica os serviços que estão rodando:
public boolean isServiceRunning(String servicoClassName) { ActivityManager activityManager = (ActivityManager) getSystemService(ACTIVITY_SERVICE); List<RunningServiceInfo> services = activityManager.getRunningServices(Integer.MAX_VALUE); Log.d(TAG,"Procurando Serviços"); for (int i = 0; i < services.size(); i++) { Log.d(TAG,"Service Nr. " + i + " class name : " + services.get(i).service.getClassName()); if(services.get(i).service.getClassName().compareTo(servicoClassName)==0){ return true; } } return false; }
Fonte imagem: http://images.mylot.com/userImages/images/postphotos/2521292.jpg
Android – Verificar serviços em execução
Bom dia!!!
Tem como mandar fechar um desses services?
Aguardo
tem o comando stopService(); porem você tem que passar a intent com o valor do serviço do intent filter.
Exemplo, cada serviço comtem um intent filter com seu “start” você precisa criar um intent com esse valor e da um stopService(it);
Intent it = new Intent(“android.intent.action.START_MOBILE_TRACKER”);
stopService(it);
Agora, como pegar esse “valor” de serviços de terceiros já não sei…
você tambem tem um método para matar o processo da seguinte maneira:
“android.os.Process.killProcess(services.get(i).pid);”
(lembre-se de colocar a permissao: android.permission.KILL_BACKGROUND_PROCESSES)
vou tentar pesquisar sobre o caso e te responder.