gpt4 book ai didi

java - 等待下载文件完成,而不仅仅是 File.exists()

转载 作者:搜寻专家 更新时间:2023-11-01 07:58:06 25 4
gpt4 key购买 nike

我正在从网上下载一个文件,然后使用 BufferedReader 读取它。目前我使用 DownloadManager 下载文件然后有这个代码:

while (latestNumbersFile.exists() != true) {
System.out.println("WAITING...");
}

try {
Thread.sleep(5000);
} catch (InterruptedException ignored) {
}

以便在文件下载完成之前不会执行任何后续代码。这可行,但接缝对我来说真的很脏。如果我删除 Thread.sleep(5000); 它接缝该文件确实存在但还没有准备好读取。

必须有一种更好的方法来识别文件何时不仅存在而且实际上已经完成并准备好在其上执行某些操作。

有什么想法吗? (抱歉,如果这是一个菜鸟问题,我已经四处寻找答案)

最佳答案

来自 Android developers下载完成后,DownloadManager 广播一个 Intent 。您可以捕获此“事件”并像这样处理它:

BroadcastReceiver receiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
String action = intent.getAction();
if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {


/** Do your coding here **/

}
}
};

registerReceiver(receiver, new IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE));

来源:Vogella

如果这对您有帮助,请告诉我,如果没有,我们可以尝试其他方法:)

关于java - 等待下载文件完成,而不仅仅是 File.exists(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24930552/

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