ProgressDialog pas tout en montrant l'exécution d'une tâche
J'ai une routine de sauvegarde qui copie tout d'un dossier vers une carte SD externe qui fonctionne parfaitement. Je suis d'essayer d'obtenir une belle boîte de dialogue popup qui s'affiche lorsqu'il est en cours d'exécution mais il n'est tout simplement pas visible. N'essayez même pas de le lancer (mais la sauvegarde n'est complet).
Voici mon code pour le moment:
public void doBackup(View view) throws IOException{
ProgressDialog pd = new ProgressDialog(this);
pd.setProgressStyle(ProgressDialog.STYLE_SPINNER);
pd.setMessage("Running backup. Do not unplug drive");
pd.setIndeterminate(true);
pd.setCancelable(false);
pd.show();
File source = new File("/mnt/extSdCard/DirectEnquiries");
File dest = new File("/mnt/UsbDriveA/Backup");
copyDirectory(source, dest);
pd.dismiss();
}
êtes-vous à l'appel de cette méthode onCreate()?????
Il est appelé sur un bouton de la presse
Il est appelé sur un bouton de la presse
OriginalL'auteur TMB87 | 2012-10-15
Vous devez vous connecter pour publier un commentaire.
Vous exécutez des tâches longues, dans un
Thread
ou avec unAsyncTask
. Ensuite, votreProgressDialog
.Faire quelque chose comme:
La présentation et à la révocation de l'ProgressDialog objet doit être fait avec un gestionnaire, puisque seul le thread d'origine peut la toucher, la vue.
OriginalL'auteur maninder singh
Créer un asyntask et de mettre vos tâches consommatrices de temps
Vous permettra d'obtenir le nombre d'échantillons de Asyntask.
OriginalL'auteur andy
Au lieu de le faire en une seule fonction à la fois. Effectuez les étapes suivantes, et il sera certainement travailler pour vous.
1. Créer un async classe.(Il va créer un thread séparé pour votre répertoire de la copie de la fonctionnalité et de ne courir sur l'INTERFACE principale.)
2. Afficher votre boîte de dialogue de progression avant d'exécuter l'async classe.
3. Sur le post de méthode d'exécution, de rejeter votre dialogue.
OriginalL'auteur omy