Boîte de Dialogue de progression sur l'ouverture à l'activité
hé les gars,
j'ai un problème avec la boîte de dialogue de progression sur l'ouverture d'une activité (appelée activité 2 dans l'exemple).
L'activité 2 a beaucoup de code à exécuter à cet événement OnCreate.
final ProgressDialog myProgressDialog = ProgressDialog.show(MyApp.this,getString(R.string.lstAppWait), getString(R.string.lstAppLoading), true);
new Thread() {
public void run() {
runOnUiThread(new Runnable() {
@Override
public void run() {
showApps();
}
});
myProgressDialog.dismiss();
}
}.start();
La showApps fonction de lancement de l'activité 2.
si j'exécute ce code sur mon bouton cliquez sur l'événement sur l'activité 1, je vois la progression, mais elle ne bouge pas et afeter j'ai un écran noir pendant 2 ou 3 secondes, le temps pour android pour montrer l'activité.
Si j'exécute ce code dans le OnCreate de Activity2 et si je remplace le showApps par le code de la OnCreate, Activity1 gel 2 secondes, je ne vois pas la boîte de dialogue de progression, et de geler à nouveau 2 secondes sur l'activité 2 avant de voir le résultat.
Une idée ?
Hey @WarrenFaith, pourriez-vous me coup de pied un solide et d'accepter mes haut-voté réponse à cette question?
pas à ma question 🙂
Embarrassé, je suis...merci Warren 😉
Hey @Pachanka, pourriez-vous me coup de pied un solide et d'accepter mes haut-voté réponse à cette question?
OriginalL'auteur Pachanka | 2010-11-23
Vous devez vous connecter pour publier un commentaire.
J'ai eu le même problème et à l'aide d'un AsyncTask est de travailler pour moi.
Il y a 3 grandes méthodes pour remplacer dans le AsyncTask.
traitement aura lieu.
)
Si vous faire de votre sous-classe AsyncTask intérieur de la classe de votre activité, vous pouvez appeler le cadre des méthodes showDialog, dismissDialog, et removeDialog à partir de votre AsyncActivity.
Voici un exemple de mise en œuvre de AsyncTask:
OriginalL'auteur Darren Hicks
GeeXor
Je vous suggère d'éviter d'effectuer beaucoup d'opérations dans l'Activité 2 de la OnCreate.En écrivant beaucoup d'opérations dans OnCreate est une raison pour l'écran noir entre les activités.Afin d'effectuer ces opérations de manière asynchrone à l'aide de AsyncTask ou dans un Thread (ou de les écrire dans onStart si elles sont inévitables).
L'autre suggestion est de commencer un autre progressDialog dans l'activité 2 de la onCreate qui se déroulera jusqu'à l'ensemble de vos données est chargé, & utilisateur saura que quelque chose se passe en arrière-plan.
OriginalL'auteur 100rabh
Autant que je sache, vous ne pouvez pas précharge toute activité, avec une progression boîte de dialogue affichée. Êtes-vous un test sur un périphérique réel ou dans l'émulateur?
J'ai vu des solutions de contournement qui a ouvert une activité avec un ViewFlipper avoir une animation de progression dans le centre et, à la Vue suivante, il fut chargé d'une activité, mais ce n'est pas quelque chose qui est recommandé et difficile à mettre en œuvre pour travailler comme vous le souhaitez.
OriginalL'auteur Pentium10
c'est ce que je ferais. créer un gestionnaire sur le thread de l'interface utilisateur, commencer le traitement en arrière-plan de thread et de montrer ensuite la progressdialog. lorsque le thread d'arrière-plan a terminé les travaux de l'obtenir pour poster un exécutable sur le thread d'interface utilisateur via le gestionnaire pour fermer la boîte de dialogue.
Jetez un oeil à
Activity.setProgress
. Il y a un certain nombre d'options pour la configuration de la petite roue qui tourne sur l'Activité de la barre de titre.ok, j'ai trouvé une solution ici : stackoverflow.com/questions/3893626/...
OriginalL'auteur techiServices