2011-07-01 6 views
16

Co jakiś czas moja aplikacja na telefon iPhone przechodzi w stan, w którym żądania sieci są zawsze wyczekiwane, nawet jeśli inne aplikacje działają poprawnie (a nawet mają dostęp do tych samych witryn). Nie jest to oczywiście skorelowane ze zmianami w dostępności sieci i zdarza się zarówno w 3G, jak i WiFi. Wszelkie sugestie dotyczące diagnozowania problemu?Aplikacja na telefon iPhone przechodzi w stan, w którym żądania sieciowe nigdy się nie kończą.

(FWIW, aplikacja wykorzystuje MonoTouch i HttpWebRequest, ale podejrzewam, że cokolwiek się dzieje nie tak jest niższy poziom).

Uwaga: problem będzie się powtarzał przez aplikację w tło i zmieniając konfigurację sieci; jedyną poprawką wydaje się zabicie aplikacji i ponowne jej uruchomienie.

Aktualizacje: Próbowałem już korzystać z Reachability, ale bez skutku. Reachability.InternetConnectionStatus zawsze zwraca ReachableViaWiFiNetwork (lub ReachableViaCarrierDataNetwork zależności;.. Podobnie IsHostReachable() zawsze zwraca true Runtime.StartWWAN() wydaje się mieć żadnego znaczenia

+0

Mam ten sam problem. I to jest przerywane. Używam MKNetworkKit. –

+1

Chciałbym pomóc - w tej chwili nie rozwijam iPhone'a. Nigdy tego nie naprawiłem i łatwiej było zmienić pracę, niż nadal nadużywać mojego szefa. : P –

+1

BOOOOOO !!!!!!!! –

Odpowiedz

6

Wystąpił błąd otwarty na ten temat w https://bugzilla.novell.com/show_bug.cgi?id=555439 i było kilka prób rozwiązywania go jako ostatniego komentarza. w błąd, to było domniemywać stałe, ale myślę, że jeśli używasz MonoTouch 4.0.3 to istnieje kilka przypadków, które nie są obejść

Zasadniczo, problem jest odzwierciedlone w tym drugim pytaniu Stackoverflow. iPhone 3G Connection Enabling

Do czego służy MonoTouch, aby spróbować obejście tego problemu polega na wywołaniu MonoTouch.Runtime.StartWWAN (Uri), które otwiera fałszywe połączenie z uri za pomocą NSUrlConnection, aby wymusić przebudzenie interfejsu sieciowego. Następnie MonoTouch wraca do korzystania z API gniazda BSD wewnątrz HttpWebRequest.

+1

Tak, 'StartWWAN()' wydaje się nie pomagać. Próbuję [Miguel's] (http://stackoverflow.com/users/16929/miguel-de-icaza) [port] (https://github.com/migueldeicaza/monotouch-samples/blame/master/reachability/ reachability.cs) z [Reachability] (http://developer.apple.com/library/ios/#samplecode/Reachability/Introduction/Intro.html), aby sprawdzić, czy to ma znaczenie. –

0

Spróbuj ustawić właściwość timeOutInterval urządzenia NSURLRequest używanego do nawiązywania połączenia.

Powiązane problemy