2010-05-24 12 views
0

Est-ce que quelqu'un d'autre a remarqué un comportement spécifique au HTC Incredible qui pourrait entraîner une application gardant l'appareil éveillé et occupé? J'ai reçu des rapports que mon application est responsable de garder l'appareil éveillé et de vider la batterie, mais seulement des utilisateurs HTC Incredible.Je reçois des rapports que mon application est la vidange de la batterie, mais seulement sur HTC Incredible

Mon application répond à un certain nombre d'intentions qui pourraient être liées. Il a un service qui démarre au démarrage et répond également aux changements de connectivité réseau. J'utilise un WakeLock, mais j'ai pris soin de le relâcher quand j'ai fini de le traiter, et le WakeLock expire après quelques minutes que je sois fini ou non.

J'ai entendu dire que l'Incredible peut avoir des problèmes de connectivité, ou que certains d'entre eux le font. Se pourrait-il que le réseau monte et descende fréquemment, déclenchant mon application?

D'autres idées? J'ai demandé à un utilisateur de m'envoyer ses journaux avec aLogCat. S'ils sont prêts, cela peut aider à affiner la cause.

Répondre

1

Le problème semblait être que j'obtenais des intentions de changement de connectivité réseau très rapide. Beaucoup plus que je n'ai jamais vu avec mon Droid. Je pense que je vais devoir définir une alarme temporisée sur les changements de connectivité réseau afin que j'essaie seulement le traitement lorsque le réseau est stable depuis un certain temps.

J'ai également trouvé une situation où mon code pourrait ne pas libérer le verrou de sillage après des changements rapides d'état du réseau. Le verrouillage du réveil était toujours en attente, mais à ce moment-là, j'avais souvent reçu plus de changements d'état du réseau. J'ai corrigé ce dernier problème, et en attendant, j'ai désactivé l'état du réseau Intents pour mon application, car ils ne sont pas cruciaux.

+0

Veuillez envoyer des commentaires sous forme de commentaires ou de modifications à la question d'origine. Les nouveaux messages sont uniquement pour les réponses. J'ai essayé de résoudre ce problème pour vous, mais il s'avère que je ne peux pas supprimer les messages, seulement les modifier ... –

+0

Je pensais que je répondais à ma propre question. N'est-ce pas ce que le "répondez à votre question" est? Je l'aurais marqué comme tel, mais cela m'oblige à attendre deux jours avant de le faire. – BenTobin

1

Si le réseau change fréquemment, vous allez courir beaucoup.
Etes-vous en train de fermer votre service? Votre service s'exécute sur le thread de travail (par défaut, ce n'est pas le cas). Avez-vous besoin de répondre aux modifications du réseau pendant que l'appareil est en veille? Btw - s'exécute au démarrage - vous aurez probablement une deuxième exécution après le démarrage dès que les radios sont en cours de changement de réseau. Mettez des journaux et voyez combien de fois vous êtes réellement exécuté après le redémarrage.