8
votes

Récupérer périodiquement des données (sondage) du serveur dans Android

Je travaille sur l'application où je reçois les données du serveur à l'aide de l'appel de repos et l'ajoutez à la vue. Je reçois correctement toutes les données initiales. J'utilise l'asyncque pour le faire.

Maintenant, je souhaite périodiquement (disons 2 minutes) chercher les nouvelles données du serveur et l'ajoutez à la vue. Vérification de données (sondage) du serveur dans Android.


3 Réponses :


1
votes

La meilleure façon de le faire serait de créer un service qui récupère les données du serveur. Ensuite, si votre activité est en cours d'exécution, le service peut envoyer une intention à l'activité avec les données récupérées.

ou, avez-vous le service exécuté lorsque votre application s'exécute et que votre activité soit liée au service lors de son démarrage. Ensuite, utilisez AIDL ou quelque chose de similaire pour communiquer avec le service.
(Par exemple, chaque fois que le service a récupéré des données, il peut tirer une fonction de rappel dans votre activité)


0 commentaires

3
votes

Vous pouvez commander la classe AlarmManager pour le faire.

public class MyAlarmManager extends BroadcastReceiver {

    Context _context;
        @Override
        public void onReceive(Context context, Intent intent) {
            _context= context;
            //connect to server..

        }
}


2 commentaires

Salut umesh, essayé votre solution. J'utilise AlarmManager comme classe intérieure qui, à son tour, appelle ASYNC qui met à jour mon interface graphique. Mais je reçois cette erreur: "Impossible d'instancer le récepteur". J'ai ajouté ceci à AndroidManifest.xml File: Quel est le problème?


Comme vous pouvez le constater, ALARMManager est une classe publique qui étend un BroadCastreciever et doit être écrit dans un fichier différent. (Dans le cas ci-dessus, le nom du fichier serait myalarmManager.java) dans le fichier manifeste: le garder comme une classe intérieure pourrait être le problème ici.