gpt4 book ai didi

Android:打开的文件太多错误

转载 作者:太空宇宙 更新时间:2023-11-03 12:57:48 24 4
gpt4 key购买 nike

我有以下每 3 秒运行一次的操作。
基本上它每 3 秒从服务器下载一个文件并将其保存到本地文件中。
以下代码完成了一段时间的工作。

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() );
}

}

一切正常,但如果我让它运行 5 到 10 分钟,我会收到以下错误。

06-04 19:40:40.872: E/NativeCrypto(6320): AppData::create pipe(2) failed: Too many open files 06-04 19:40:40.892: E/NativeCrypto(6320): AppData::create pipe(2) failed: Too many open files 06-04 19:40:40.892: E/EventService(6320): DOWNLOAD ERROR = javax.net.ssl.SSLException: Unable to create application data

最近两天我一直在做一些研究。
有人建议他们打开了许多连接,比如这个 https://stackoverflow.com/a/13990490/1503155但我仍然无法弄清楚问题是什么。
有什么想法可能导致问题吗?
提前致谢。

最佳答案

我认为你得到这个错误是因为你同时打开了太多的文件,这意味着你同时运行了太多的异步任务(每个异步任务打开一个文件),如果你这么说是有道理的你每 3 秒运行一个新的。

您应该尝试使用线程池执行器来限制同时运行的异步任务的数量。

关于Android:打开的文件太多错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929977/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com