Shazam et son système de queue

MarcoDahMarcoDah Membre
mars 2015 modifié dans API UIKit #1

Bonjour à  tous,


 


J'utilisais Shazam ces derniers temps lorsque l'on m'a fait remarquer que si j'enregistre une musique en mode avion, Shazam me propose de garder l'extrait enregistré pour plus tard. Lorsque je quitte l'application ( je ne la kill pas, juste un retour sur le home ) et que j'enlève le mode avion, quelques secondes plus tard, Shazam m'affiche une notification avec le tag de l'artiste.


 


Est-ce que ça veut dire qu'il peut faire des appels réseaux même lorsque l'application n'est plus qu'en BackGround ? Je suis intéressé par le procédé utilisé. Avez vous déjà  fait des recherches dessus ou avez vous une idée de comment ils font ça ?


 


Merci


Réponses

  • AliGatorAliGator Membre, Modérateur
    Tu as enlevé le mode avion combien de temps après être sorti de l'appli Shazam ?

    Si c'est moins de 10mn ça n'a rien de nouveau ;)
  • Moins de 10 min en effet.


    Du coup ça sous entend que tu as une piste à  me donner sur comment ils ont fait ^^?


     


    Je vais essayer plus de 10 min pour voir.


  • samirsamir Membre
    mars 2015 modifié #4
     

    Il y a trois choses que tu peux faire :

     

    1.  Finir une courte tache en background que tu as commencé en mode normal.
    2. Téléchargement de contenu (longue tache) en mode background, tu peux dire au système de s'occuper de ce dernier quand l'application est en background. ( le système continue le téléchargement même si l'application est suspendu ou bien terminée)
    3. Exécutions des taches longues en background. 

     


    Donc pour ton besoin il suffit d'utiliser le premier mode. Regarde ces méthodes :



    beginBackgroundTaskWithName:expirationHandler:
     beginBackgroundTaskWithExpirationHandler:

    Et voici la documentation complète sur ça :


     


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


Connectez-vous ou Inscrivez-vous pour répondre.