2010-12-28 10 views
1

In unserer iPhone-Anwendung haben wir eine Situation, wenn das aktuelle Netzwerk verloren geht (Wi-Fi) und wir zu einem anderen Netzwerk (GPRS) wechseln müssen.iPhone SDK 4.x - Netzwerk Erreichbarkeit Rückruf im Hintergrundmodus

Wir Umgang mit dieser Situation mit Erreichbarkeits API von iPhone SDK 4.x

Alles funktioniert gut, mit Ausnahme des Hintergrundmodus - Erreichbarkeits Rückruf wird im Hintergrundmodus nicht aufgerufen werden.

Kennt jemand die Lösung für dieses Problem? Wie gehen Sie mit den verlorenen Verbindungen im Hintergrundmodus um?

Bitte beachten Sie - wir verwenden "VoIP" -Flag für den Hintergrund-Modus und den Keep-Alive-Timer mit 600 Sekunden. So reagiert unsere Anwendung auf alle eingehenden Anrufe im Hintergrundmodus und sendet auch alle 600 Sekunden erfolgreich SIP-REGISTER-Nachrichten.

Das einzige verbleibende Problem ist über die Re-Verbindungen bei der Netzwerkänderung im Hintergrundmodus. Erreichbarkeits-Callback hilft nicht dabei, solche Änderungen zu hören. Das Warten auf den nächsten Zyklus des Hintergrundtimers (bis zu 600 Sekunden) ist nicht akzeptabel, da der Benutzer während dieses Zeitraums keine eingehenden Anrufe annehmen kann.

Bitte beraten.

Antwort

0

Ich glaube, Sie auch für Erreichbarkeits in der applicationDidEnterBackground des AppDelegate überprüfen sollten und applicationWillEnterForeground Methoden.