IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Android Discussion :

Thread interrompu par la mise en veille du téléphone


Sujet :

Android

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 49
    Par défaut Thread interrompu par la mise en veille du téléphone
    Bonjour,

    Je développe une activité avec un thread qui exécute un traitement toutes les 4 secondes.
    Le traitement est interrompu à chaque fois que mon téléphone se met en veille.
    Comment fait-on pour ne pas avoir cette interruption ?

    cordialement

    Richard

  2. #2
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Par défaut
    C'est pas possible d'eviter l'arret du thread quand le pareil est mis en veille, mais c'est possible d'eviter que le pareil est mis en veille.

    Pour effectuer ça il ne faut qu'un WakeLock qui, bien-entendu, garde le téléphone réveillé.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    //Garder le téléphone réveillé
    //PARTIAL_WAKE_LOCK signifie que l'écran reste sombre
    PowerManager pm = (PowerManager) getSystemService(Context.PARTIAL_WAKE_LOCK);
    PowerManager.WakeLock wl = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "RecurringService");
    wl.acquire();
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    //Permettre le téléphone se mettre en veille
    wl.release();
    voir http://developer.android.com/referen...erManager.html

    Normalement l'utilisation d'un WakeLock est découragé parce qu'il est très lourd en termes de consomption de la batterie.

    Un autre possibilité, moins cher pour la batterie, est un AlarmManager (http://developer.android.com/referen...rmManager.html), qui peut relancer un Intent (alors Activity ou Service) à quelque point dans l'avenir.

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    33
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 33
    Par défaut
    Citation Envoyé par c4cf6 Voir le message
    Bonjour,

    Je développe une activité avec un thread qui exécute un traitement toutes les 4 secondes.
    Le traitement est interrompu à chaque fois que mon téléphone se met en veille.
    Comment fait-on pour ne pas avoir cette interruption ?

    cordialement

    Richard
    Pourquoi ne pas déléguer ce traitement à un Service et passer ensuite les données à ton Activité, puisque les services sont créés pour s'exécuter en tâche de fond ? Le mécanisme est un peu fastidieux à mettre en place mais ça t'évitera de consommer inutilement la batterie et la mémoire.

    http://blog.developpez.com/android23...on-de-service/

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 51
    Par défaut
    Citation Envoyé par Inrokuptible Voir le message
    Pourquoi ne pas déléguer ce traitement à un Service et passer ensuite les données à ton Activité, puisque les services sont créés pour s'exécuter en tâche de fond ? Le mécanisme est un peu fastidieux à mettre en place mais ça t'évitera de consommer inutilement la batterie et la mémoire.
    Inrocktible a raison, pour les tâches destinées à fonctionner à long terme, on conseille d'utiliser un Service.

    Mais je voudrais ajouter une petite clarification – soit un Activity ou une Service il faut un Thread qui sera suspendu dès que le téléphone s'est mis en veille, alors s'il est nécessaire d'éviter la suspension du Thread il faut éviter la mise-en-veille et puis la consommation de la batterie reste la même.

Discussions similaires

  1. Réponses: 4
    Dernier message: 31/07/2022, 09h36
  2. [WS 2008] Désactiver la mise en veille par GPO
    Par ali_zoroo dans le forum Windows Serveur
    Réponses: 0
    Dernier message: 29/04/2012, 12h33
  3. Mise en veille bloquée par un service
    Par Sunchaser dans le forum Windows XP
    Réponses: 2
    Dernier message: 15/07/2007, 16h39
  4. Réponses: 19
    Dernier message: 04/08/2005, 22h33
  5. Comment interdire la mise en veille d'une machine sous Win ?
    Par Soulama dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 01/08/2005, 15h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo