2010-07-13 6 views
0

J'utilise UIBackgroundMode 'location' pour recevoir des mises à jour de fond GPS lorsque l'utilisateur appuie sur le bouton Home. Par conséquent, si l'application est laissée en mode d'arrière-plan pendant la nuit, la batterie est toujours morte le lendemain matin. J'ai dit à locationManager à stopUpdatingLocation, mais sans effet. Je comprends qu'Apple ne veut pas que les développeurs utilisent exit - en fait, cela semble avoir peu d'effet sur l'application si ce n'est de la mettre à l'arrière-plan - mais je ne peux pas me permettre que la batterie meure si l'utilisateur ne se termine pas l'application.Comment éviter l'utilisation excessive de la batterie sous iOS4?

Des suggestions?

Répondre

0

Peut-être que vous pourriez vous inscrire à une notification locale qui informe l'utilisateur qu'ils devraient ouvrir l'application pour arrêter le suivi de localisation? Ce n'est pas très élégant bien sûr, il semble qu'Apple devrait permettre au développeur de s'inscrire pour des mises à jour de localisation pendant une période de temps donnée, peut-être que vous pourriez soumettre une demande de fonctionnalité pour cela. Je pense que Loopt surveille pendant 24 heures, puis quitte, peut-être que vous pourriez faire des recherches sur la façon dont ils l'ont fait s'arrêter après 24 heures. Je voudrais pouvoir aider plus mais je n'ai pas du tout dérangé avec le cadre de localisation.

+0

Merci Flash, et vous avez raison de dire que l'application est conçue pour fonctionner en arrière-plan dans des conditions spécifiques. Apple va jusqu'à décourager l'utilisation des services de localisation en arrière-plan - ce qui est intéressant car ils ont également ouvert l'API pour permettre ce comportement. Je vais continuer à chercher ... – Roger

0

Vous pouvez utiliser une minuterie et/ou background task, qui fonctionnerait après un certain temps d'inactivité, et essayer d'éteindre le GPS alors. Ainsi, vous pouvez toujours suivre l'emplacement en arrière-plan de votre application, mais après 10-20 minutes, il s'éteint.

Questions connexes