2011-01-10 3 views
3

J'ai une activité qui récupère les informations d'un serveur distant et l'affiche dans un TableLayout. La fonction qui extrait les informations du serveur a son propre délai d'attente et une exception est levée lorsque le délai est dépassé. Maintenant, lorsque l'activité est chargée, je veux que la fonction soit déclenchée, et qu'un dialogue progressDialog soit affiché pendant que la fonction fonctionne, et qu'il soit masqué si la fonction est terminée, ou si une exception de délai d'attente a été levée. Le problème: J'ai mis le code qui fait toutes les fonctionnalités décrites ci-dessus dans la fonction onCreate(). Rien n'est montré sur l'écran de l'émulateur, puisque la fonction onCreate() n'a pas fini de fonctionner ...Opérations longues sur la fonction onCreate()

J'ai aussi essayé de mettre le code dans la fonction onStart() ... mêmes résultats non désirés ...

J'essaie d'éviter d'utiliser des fils, car la fonctionnalité a besoin de nombreuses variables que le fil ne sera pas a accès à eux ...

Comment puis-je mettre en œuvre le comportement voulu ??

Merci.

Répondre

3
  • Créer une classe implémentant Runnable et mettre toute votre logique de charge là-dedans. Appeler une fonction dans l'activité lorsque vous avez terminé (disons onFinished(params...))
  • Créer une interface utilisateur Handler et obtenir le gestionnaire de mettre à jour l'interface utilisateur dans onFinished(params...)
  • Créer un fil dans onCreate et commencer là pour appeler votre Runnable.
Questions connexes