1. Hast Du Lust, bei uns mitzuarbeiten und das AH-Team zu verstärken? Alle Details zu dieser aktuellen Herausforderung findest Du hier.
  1. AndrejEdd,25.02.2016#1
    AndrejEdd

    AndrejEdd ThreadstarterJunior Mitglied

    Hallo zusammen

    Ich arbeite an einer App und nun habe ich dort ein Fragment welches die Freundesliste anzeigen soll.
    Ich habe eine Umsetzung gemacht die aber nicht so gut ist, da es die ganze Zeit abfragen auf den Server startet um die Kontaktliste zu aktualisieren sobald ein neuer Kontakt rein kommt und die Möglichkeit mit einem "Aktualisieren"-Button finde ich keine schöne Lösung.

    Wie macht es z.B. Whatsapp, Snapchat, Viber,... das ihre Kontaktliste ziemlich schnell aktualisiert wird ohne das man die manual muss machen?

    Sobald man einen neuen Kontakt ins Telefonbuch aufnimmt, dauert es wenige Sekunden und diese wird auch in die App genommen? Welche Architektur wird da verwendet? Wie wird das gelöst?
     
  2. Jaiel

    JaielAndroid-Lexikon

    Was? Muss man bei Whatsapp nicht auch auf aktualisieren drücken? Ansonsten kann ich mir vorstellen dass solche Apps auf Intents hören könnten, falls welche ausgegeben werden beim Kontakte anlegen?!
     
  3. AndrejEdd,25.02.2016#3
    AndrejEdd

    AndrejEdd ThreadstarterJunior Mitglied

    nein bei whatsapp funktionierts bei mir so das wenn ich einen neuen kontakt anlegen und in whatsapp gehe das es im verlauf von ein paar sekunden diese von alleine aktualisiert wird ... wieso funktioniert das so schnell? bei mir wird die kontaktliste genommen und für jeden einzelnen eine abfrage gemacht auf den server ob dieser kontakt in der db vorhanden ist, wenn ja wird er bei kontaktliste hinzugefügt ansonsten nicht ... und dieser prozess dauert halt zu lange und dies schon bei einem gerät... wie würde das aussehen wenn 10 oder mehr das gleichzeittig verwenden...
     
  4. DieGoldeneMitte,25.02.2016#4
    DieGoldeneMitte

    DieGoldeneMitteAndroid-Lexikon

    Wenn Änderungen in Serverdiensten schnell in der App landen, würde ich drauf tippen, dass das via GCM passiert.
     
  5. niko132,25.02.2016#5
    niko132

    niko132Android-Hilfe.de Mitglied

    Ich würde mir einfach immer wenn ich die Kontakte Auslese eine Liste speichern, die alle abgefragten Kontakte beinhaltet und auch, ob Sie den Service nutzen.
    Anschließend würde ich einen Listener oder ähnliches für Änderungen in der Kontaktliste registrieren (einfach mal bei Google suchen). Wenn die Kontakte geändert wurden vergleichst du sie mit deiner gespeicherten Liste und suchst dir die raus, die noch nicht drin stehen, also die neuen Kontakte. Dadurch musst du normalerweise nur einzelne Kontakte abfragen (außer bei der ersten Nutzung) und somit sehr viel Zeit sparen :)
     
  6. markus.tullius,26.02.2016#6
    markus.tullius

    markus.tulliusAndroid-Lexikon

    GCM (PushNotification) ist die Abstand einfachste Lösung. Wenn man das ganze im Hintergrund (Service) laufen lässt, müsste es sehr schnell sein. Hier ist der limitierende Faktor der Server.

    Lauschen auf Änderungen im Adressbuch.
    Geht ungefähr so:

    how to listen for changes in Contact Database