J'ai créé une application qui permet à l'utilisateur de télécharger un fichier audio et de le stocker sur sa carte SD. Le code ci-dessous fonctionne réellement, mais le problème est chaque fois que j'appuie sur le bouton de téléchargement, l'application entière se bloque jusqu'à ce que le téléchargement soit terminé. Comment puis-je résoudre ce problème afin qu'il ne gèle pas chaque fois que je clique sur le bouton de téléchargement? S'il vous plaît aidez-moi, j'ai lutté pendant des jours en essayant de trouver la solution pour cela, j'apprécierais vraiment votre aide beaucoup. Merci d'avance.Téléchargement de problème de fichiers mp3 sous Android
try {
URL url = new URL("http://www.yourfile.mp3");
HttpURLConnection c = (HttpURLConnection) url.openConnection();
c.setRequestMethod("GET");
c.setDoOutput(true);
c.connect();
String PATH = Environment.getExternalStorageDirectory()
+ "/download/";
Log.v("", "PATH: " + PATH);
File file = new File(PATH);
file.mkdirs();
String fileName = "yourfilename.mp3";
File outputFile = new File(file, fileName);
FileOutputStream fos = new FileOutputStream(outputFile);
InputStream is = c.getInputStream();
byte[] buffer = new byte[1024];
int len1 = 0;
while ((len1 = is.read(buffer)) != -1) {
fos.write(buffer, 0, len1);
}
fos.close();
is.close();
}catch (IOException e) {
e.printStackTrace();
}
}
Depuis votre méthode de téléchargement fonctionne le téléchargement de votre fichier, il va créer une impression comme l'application a freezed. Mais la vérité est que votre méthode s'exécute dans le dos. Ainsi, pour éviter le gel de l'application, vous pouvez afficher un ProgressDialog jusqu'à ce que la méthode de téléchargement soit en cours de téléchargement et après l'exécution, vous pouvez annuler le ProgressDialog. –
J'ai effectivement essayé, mais la même chose s'est produite. Les spectacles ProgressDialog après le téléchargement est terminé. Merci pour votre réponse – user739375