[RESOLVIDO]Service consome muito do processador

2 respostas
java
L

Bom galera, estou tendo um problema com o Service do meu app, a lógica esta funcionando ele trabalha corretamente, o problema é que quando o Service esta funcionando o uso do processador do celular vai pro máximo, e isso deixa o celular mais quente e a bateria vai embora muito mais rápido, acredito que o problema seja um laço “while”, a intenção desse Service é que a cada 1 minuto ele execute o código dele e para isso utilizei um laço while num loop infinito dentro de uma Thread e utilizei “if” pare verificar se já se passou um minuto, vou deixar um esboço:

public void onCreate (){

super.onCreate();

contesto = this;

new Thread(new Runnable() {

<a class="mention" href="/u/override">@Override</a>

public void run() {

Tarefa();

}

}).start();

}
public void Tarefa(){

while (true) {

if(já passou 1 minuto){

… código …

}

}

}

acredito que pelo fato do while esta rodando sem parar isso faça com que o processador fique sempre no máximo, só que eu não conheço uma outra forma de fazer esse código rodar constantemente, se alguém souber uma forma de fazer com que esse Service execute o seu código a cada 1 minuto sem ficar constantemente sugando todo o processador eu agradeço.

2 Respostas

me1

O problema é que vc fica verificando se já passou 1 minuto constantemente.
O ideal é que vc agende as tarefas para que sejam executadas a cada 1 minuto usando a class AlarmManager:
http://developer.android.com/intl/pt-br/reference/android/app/AlarmManager.html

Dessa forma seu código vai ficar elegante e performático.

L

É isso mesmo, eu não conhecia o AlarmManager ai não dava pra usar né, mas é só implementa-lo coisa que é muito fácil , e pude tirar o laço while e o if que tudo fico uma maravilha, valeu pela resposta.

Criado 27 de março de 2016
Ultima resposta 28 de mar. de 2016
Respostas 2
Participantes 2