2010-10-03 5 views
1

j'ai une application iphone assez basique, fait un peu web appelle avec:iphone connexion sans fil, la connectivité échoue après la mise sans fil sous/hors nouveau

NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil]; 

Lors des essais, si j'arrête l'application, éteignez sans fil, et redémarrez l'application (ne pas tuer et redémarrer, juste apporter au premier plan), je continue d'obtenir des erreurs sur les tentatives d'URL réseau. Mais d'autres applications (safari, etc) restaurent bien.

Y a-t-il quelque chose qui me manque pour "effacer" l'état du réseau dans mon application si celui-ci tombe en panne alors que l'application est en arrière-plan?

Répondre

1

Essayez plutôt d'utiliser des requêtes réseau asynchrones. Il peut y avoir une sorte de problème avec la suspension et la reprise d'un thread réseau synchrone bloqué pendant une condition d'erreur.

1

Je ne sais pas pourquoi vous voyez le comportement que vous êtes, mais j'ai deux suggestions.

D'abord, à moins que vous ne soyez déjà en cours d'exécution sur un thread d'arrière-plan, évitez les demandes synchrones. Apple URL Loading System Programming Guide a un exemple de code pour les demandes asynchrones. Le documentation for NSURLConnection contient également des liens vers de nombreux exemples de code sous "Exemple de code associé".

Cependant, une option encore meilleure est d'utiliser ASIHTTPRequest. C'est une bibliothèque très robuste, flexible et facile à utiliser pour télécharger des données sur le Web. Il est utilisé dans des dizaines, voire des centaines (voire des milliers) d'applications, et il est très efficace pour gérer les problèmes de connexion. Les chances sont bonnes qu'il gère déjà le cas que vous avez décrit ci-dessus.

1

Je crois qu'il ya des choses qui doivent être faites pour appuyer votre demande en cours d'exécution en arrière-plan et les actions qui doivent être prises pour assurer qu'il fonctionne correctement lorsqu'elle est mise au premier plan

https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html

+0

est ici un lien ne nécessite pas de connexion. https://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/BackgroundExecution/BackgroundExecution.html –

Questions connexes