spectacle et rejeter boîte de dialogue de progression lors de l'exécution d'un thread dans android
J'ai une méthode dans mon activité de télécharger un ensemble de fichiers. Ce téléchargement prend de la place quand je commence une nouvelle activité. J'ai utilisé les threads, car il télécharge complètement alors que AsyncTask peut parfois ne parviennent pas à télécharger tous les fichiers, il peut rester coincé entre les deux.
Maintenant, un écran noir s'affiche lorsque le téléchargement a lieu. Je veux montrer à l'intérieur d'un ProgressDialog de sorte que l'utilisateur peut sentir que quelque chose a été téléchargé.
J'ai ajouté un ProgressDialog, mais il n'affiche pas. Quelqu'un peut-il dire où j'ai fait de mal?
Ci-dessous mon code:
À l'intérieur de onCreate()
j'ai écrit:
downloadFiles();
private boolean downloadFiles() {
showProgressDialog();
for(int i = 0; i < filesList.size();i++) {
Thread thread = new Thread(new Runnable() {
@Override
public void run() {
//downloading code
});
thread.start();
thread.run();
}
dismissProgressDialog();
return true;
}
//ProgressDialog progressDialog; I have declared earlier.
private void showProgressDialog() {
progressDialog = new ProgressDialog(N12ReadScreenActivity.this);
progressDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
progressDialog.setMessage("Downloading files...");
progressDialog.show();
}
private void dismissProgressDialog() {
if(progressDialog != null)
progressDialog.dismiss();
}
OriginalL'auteur Mathew | 2011-06-23
Vous devez vous connecter pour publier un commentaire.
Essayer .. c'est simple
OriginalL'auteur cinemaputar.com
S'il vous plaît essayer de Code ci-Dessous .
Ici, dans ce code, si jamais votre téléchargement sera terminé, il a appelé gestionnaire de réponse et de votre boîte de dialogue de progression rejettera.
oui, c'est fermer la boîte de dialogue après le premier thread terminé . vous devez modifier votre code comme il va appeler à nouveau votre fonction...
OriginalL'auteur Chirag
Dans downloadFiles() vous afficher la boîte de dialogue, puis de lancer un nombre de threads et après ils ont commencé la boîte de dialogue ai rejeté. Je ne pense pas que ce est ce que vous voulez que la boîte de dialogue se ferme à droite après le dernier thread est démarré et pas après le dernier thread a fini.
La dismissProgressDialog() la méthode doit être appelée après le dernier thread a fini son travail. Ainsi, à la fin du code à exécuter dans le thread, vous devez vérifier si d'autres threads sont toujours en cours d'exécution ou si vous pouvez fermer la boîte de dialogue comme aucun autre thread en cours d'exécution.
OriginalL'auteur Flo
Essayez le code suivant et laissez-moi savoir comment ça se passe:
OriginalL'auteur Mahendra Liya