Bonjour,

Je suis en train de faire une application qui doit renvoyer des informations à un serveur régulièrement. J'ai donc fait un service qui lance un thread. Ce thread se charge d'ouvrir la connexion puis d'envoyer les informations régulièrement.

Je dispose d'une Activity qui permet de visualiser les traces avec un horodatage.

code simplifié :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class Mythread extends Thread
{
    public void run()
    {
         // Ouverture de la connexion
 
 
         // Envoi d'infos régulièrement
         while (true)
         {
              trace("avant envoiInfos");
              envoiInfos();
              sleep(15000);
         }
    }
}
Tout ca marche parfaitement, mais une fois qu'on est sur un vrai téléphone, au bout de quelques dizaines de secondes que l'écran s'est éteint, on reste bloqué dans le sleep

exemple de traces :
11:08:00 | avant envoiInfos
11:08:15 | avant envoiInfos
11:08:30 | avant envoiInfos << extinction de l'écran
11:08:46 | avant envoiInfos
11:09:01 | avant envoiInfos
11:09:15 | avant envoiInfos
11:18:23 | avant envoiInfos << rallumage de l'écran, on est resté 9 minutes sans trace
11:18:38 | avant envoiInfos
...
Quelqu'un aurait-il une idée du pourquoi du comment ?
Pour info, j'utilise des Threads parceque j'ai potentiellement pas mal de connexions à gérer. De plus ce code est dans une librairie qui sera aussi bien utilisée dans une appli java ordinaire que dans une appli android


Merci pour vos tuyaux !