2012-04-10 11 views
2

Ich habe noch nie eine App mit Push-Benachrichtigungen codiert und ich habe eine sehr allgemeine Frage. Ich möchte die Daten eines UITableview (die von einem Webservice kommen) automatisch aktualisieren, ohne die Interaktion "zum Aktualisieren" oder eines anderen Benutzers zu aktivieren. Ist es möglich, Push-Benachrichtigungen zu verwenden, um meine App für eine Datenänderung zu informieren, um zu vermeiden, dass alle xx Sekunden alle Bandbreiten und Batterien verloren gehen?Effektive automatische Aktualisierung von UITableview ohne Benutzerinteraktion (IOS 5)

Mit anderen Worten, während meine App im Vordergrund läuft (vielleicht) kann ich mit der Nachricht umgehen und der Benutzer wird kein Popup erhalten, aber was passiert sonst?

Gibt es eine andere Möglichkeit, das gleiche Ergebnis zu erzielen?

Ich werde IOS im Voraus 5.0+

Dank verwenden

Antwort

4

Sie einen Server HTTP-Request machen könnte, die nur etwas zurück, wenn es eine Änderung gab. Wenn diese Antwort nicht leer ist, können Sie die Daten erneut laden. Die Funktion, die Sie von einem NSTimer aufrufen können.

NSTimer *timer = [NSTimer scheduledTimerWithTimeInterval:2 target:self selector:@selector(get) userInfo:nil repeats:YES]; 

und

-(void)get { 
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://example.com/app.php"]]; 
    [[NSURLConnection alloc] initWithRequest:request delegate:self]; 
} 
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data { 
    NSString *responseString = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 
    if(![responseString isEqualToString:@""]) { 
    // reload 
    } 
} 
+0

oder kombinieren Sie dies mit 'didReceiveLocalNotification' (Antwort von Stephen Darlington oben) – Dion

+0

Vielen Dank! Das hilft sehr. Leider kann ich nicht abstimmen, da ich keine 15 Reputationspunkte habe! – vassilag

+0

Sie sagten, Sie wollten die Umfrage vermeiden! Nur weil es keine Daten im Körper gibt, bedeutet das nicht, dass das Radio ausgeschaltet ist oder dass keine Daten übertragen werden. –

1

Wenn Ihre App ausgeführt wird, können Sie sich registrieren Push-Benachrichtigungen zu erhalten. Dann ist es nur eine Frage der Implementierung der Methode, die Ihre Tabellenansicht aktualisiert.

- (void)application:(UIApplication *)app didReceiveLocalNotification:(UILocalNotification *)notif { 

Es ist ziemlich gut documented by Apple.

+0

Danke Stephen. – vassilag

Verwandte Themen