2010-11-25 4 views
0

Je cherche des conseils et j'espère que quelqu'un peut me dire la bonne façon de mettre en œuvre ce scénario. Dans mon application, je vais montrer un écran de démarrage au démarrage et commencer immédiatement à télécharger des données à partir d'Internet. Lorsque l'écran d'accueil est terminé, après environ trois secondes, la carte doit être affichée. Lorsque le téléchargement des données est terminé, après environ une à dix secondes, la carte doit être mise à jour avec les points d'intérêt relatifs aux données téléchargées. Comment puis-je le mieux implémenter cela dans Android. Bien sûr, j'ai d'abord une activité pour l'écran de démarrage et une autre mapactivity pour la mapview. Mais que dois-je utiliser pour télécharger les données et quand il est terminé, notifier la mapactivity pour mettre à jour la carte? Est-ce que j'utilise un asynctask?Télécharger les données et mettre à jour MapView

Meilleures salutations

P

Répondre

0

SplashScreen n'a pas besoin d'être une activité distincte, car il ne gère pas les événements utilisateur.

Il suffit de mettre l'écran de démarrage et mapview dans une activité. Utilisez FrameLayout pour positionner l'écran de démarrage en haut de la carte.

Commencez le chargement des données lorsque l'activité démarre (onCreate). Utilisez AsyncTask pour effectuer une communication réseau en arrière-plan tout en mettant à jour correctement la vue lorsque les données arrivent.

Créez Handler et appelez postDelayed() pour fermer l'écran de démarrage après un certain temps.

+0

Merci pour votre réponse. Mais disons que j'aimerais vraiment avoir Splash et Map dans des Activités séparées pour les séparer les uns des autres, serait-il possible de démarrer un AsyncTask à partir de SplashActivity et de démarrer MapActivity et laisser MapActivity recevoir des commentaires de AsyncTask quand il est fini. –

+0

Cela devrait être possible. Je ne sais pas si cela fonctionnerait bien. Lorsque vous démarrez MapActivity, vous ne devez afficher aucun contenu (setView (..)) jusqu'à ce que AsyncTask soit terminé. –

Questions connexes