NSTimer en arrière-plan fonctionne
Je ne la comprends pas du tout, mais NSTimer
dans mon appli certainement est en cours d'exécution en arrière-plan. J'ai un NSLog
en forme exécuter par la minuterie et il se connecte alors qu'elle est en arrière-plan. C'est sur l'iPhone 4 avec iOS 4.2.1. Je l'ai déclaré à l'emplacement de fond de soutien en Info.plist.
J'ai lu la documentation et de nombreuses discussions ici et d'ailleurs, et il ne devrait pas être possible. Est-il un iOS bug? Ou sans papiers? Je ne veux pas l'utiliser dans un avenir proche, par exemple avec l'arrivée de l'iOS 4.3 que Apple silencieusement "fixe" et l'application ne fonctionne pas.
Quelqu'un sait plus à ce sujet?
source d'informationauteur JakubM
Vous devez vous connecter pour publier un commentaire.
NSTimer
va lancer à chaque fois que le principal runloop est en cours d'exécution. Apple ne fait pas de promesses que je ne connais pour déprogrammer les minuteries ou à empêcher les principaux runloop en cours d'exécution. Il est de votre responsabilité de déprogrammer votre minuteries et de libérer des ressources au moment de passer à l'arrière-plan. Apple ne va pas le faire pour vous. Toutefois, ils peuvent vous tuer pour l'exécution lorsque vous n'êtes pas censé ou d'utiliser trop de secondes.Il y a beaucoup de trous dans le système qui va permettre à une application de s'exécuter lorsqu'il n'est pas autorisé. Il serait très coûteux pour le système d'exploitation pour l'en empêcher. Mais vous ne pouvez pas compter sur elle.
Vous peut ont une minuterie tirer en arrière-plan mode d'exécution. Il ya une couple de trucs:
beginBackgroundTaskWithExpirationHandler
.Notes