Aller au contenu

Crash avec vWakeLock.acquire()


Zenos77

Recommended Posts

Bonjour à tous,

j'ai un petit souci avec mon programme : je voudrais qu'il ne se mette pas en veille quand l'appli est allumée, mais que cette propriété revienne dès qu'on lance une autre appli ou qu'on revient à l'écran d'accueil.

à priori ça serait le code suivant, mais le problème c'est que quand je passe l'écran de portrait a paysage ou l'inverse, l'appli se crashe :

protected PowerManager.WakeLock vWakeLock;


public void onpause()
{
 super.onpause();

      this.vWakeLock.release();
  }


@Override
public void onresume()
{
  super.onresume();
  this.vWakeLock.acquire();
}

@Override
public void onstop()
{
  super.onstop();
  this.vWakeLock.release();
}

@Override
public void onRestart()
{
  super.onRestart();
  this.vWakeLock.acquire();
}


ainsi que le code suivant qui est dans onCreate :

final PowerManager pm = (PowerManager) getSystemService(Context.POWER_SERVICE);
this.vWakeLock = pm.newWakeLock(PowerManager.SCREEN_DIM_WAKE_LOCK, "My Tag");
this.vWakeLock.acquire();

quelqu'un saurait comment empecher le crashe ?

(je suis certain que le crashe provient de ces lignes, quand je les enlève tout fonctionne a merveille)

Lien vers le commentaire
Partager sur d’autres sites

A priori déjà il y a un truc louche.

A la création tu passes par le oncreate puis on onresume t'envoies 2 acquire et à la destruction tu passes par onpause puis onstop là c'est 2 release à la suite, c'est pas terrible.

Quand tu changes d'orientation c'est là même 2 release suivi de 2 acquire (onpause, onstop, onrestart, onresume).

http://developer.android.com/images/activity_lifecycle.png

Lien vers le commentaire
Partager sur d’autres sites

Je plussoie. Il y a beaucoup trop de weklock.acquire et (surtout) release. D'où les plantages

A mon avis, ceci devrait suffire:

- récupération du wakelock : dans le onCreate

- acquisition : dans le onresume

- libération : dans le onpause

Et c'est tout

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...