Android: Trop de fichiers ouverts erreur

J'ai la suite de l'opération qui s'exécute toutes les 3 secondes.

Fondamentalement, il télécharge un fichier à partir d'un serveur et de les enregistrer dans un fichier local toutes les 3 secondes.

Le code suivant fait le travail pendant un certain temps.

public class DownloadTask extends AsyncTask<String, Void, String>{
@Override
protected String doInBackground(String... params) {
downloadCommandFile( eventUrl);
return null;
}
}
private void downloadCommandFile(String dlUrl){
int count;
try {
URL url = new URL( dlUrl );
NetUtils.trustAllHosts();
HttpsURLConnection con = (HttpsURLConnection) url.openConnection();
con.setDoInput(true);
con.setDoOutput(true);
con.connect();
int fileSize = con.getContentLength();
Log.d(TAG, "Download file size = " + fileSize );
InputStream is = url.openStream();
String dir = Environment.getExternalStorageDirectory() + Utils.DL_DIRECTORY;
File file = new File( dir );
if( !file.exists() ){
file.mkdir();
}
FileOutputStream fos = new FileOutputStream(file + Utils.DL_FILE);
byte data[] = new byte[1024];
long total = 0;
while( (count = is.read(data)) != -1 ){
total += count;
fos.write(data, 0, count);
}
is.close();
fos.close();
con.disconnect(); //close connection
} catch (Exception e) {
Log.e(TAG, "DOWNLOAD ERROR = " + e.toString() );
}
}

Tout fonctionne bien, mais si je le laisser tourner pendant 5 à 10 minutes, j'obtiens l'erreur suivante.

06-04 19:40:40.872: E/NativeCrypto(6320): AppData::créer pipe(2)
échec: Trop de fichiers ouverts 06-04 19:40:40.892: E/NativeCrypto(6320):
AppData::créer pipe(2) a échoué: Trop de fichiers ouverts 06-04
19:40:40.892: E/EventService(6320): ERREUR de TÉLÉCHARGEMENT =
javax.net.le protocole ssl.SSLException: Impossible de créer les données de l'application

J'ai fait quelques recherches pour les 2 derniers jours.

Il y a des suggestions qu'ils sont nombreux les connexions ouvertes, comme celle-ci https://stackoverflow.com/a/13990490/1503155 encore, mais je n'arrive pas à comprendre quel est le problème.

Les idées de ce que peut provoquer le problème?

Merci à l'avance.

  • Avez-vous réussi à finalement de comprendre quel était le problème?
InformationsquelleAutor Lazy Ninja | 2013-06-05