gpt4 book ai didi

android - 如何知道在android开发中下载是否完成

转载 作者:行者123 更新时间:2023-11-29 00:38:24 25 4
gpt4 key购买 nike

我正在使用以下代码从 pdf 列表中下载 pdf,具体取决于所选择的列表。然后我想打开下载的pdf。问题是打开 pdf 的代码发生在下载完成之前。如何才能使打开 pdf 的代码在下载完成之前不会运行......

注意:我最初以文本/html 形式阅读 pdf 的原因是因为我最初将 pdf 作为网站 url,然后在 url 中打开时自动下载。

  public class pdfSelectedListener implements OnItemClickListener{

@Override
public void onItemClick(AdapterView<?> parent,
View view, int pos, long id) {
String pdfName = "";

for(int i=0;i<nameList.size();i++){
if(nameList.get(i).equals(parent.getItemAtPosition(pos).toString())){
try{
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.parse(websiteList.get(i)), "text/html");


int slashIndex = websiteList.get(i).lastIndexOf('/');
pdfName = websiteList.get(i).substring(slashIndex+1, websiteList.get(i).length());

startActivity(intent);
}catch(Exception e){
Toast.makeText(PDFActivity.this, "Invalid link.", Toast.LENGTH_LONG).show();
}
}
}

//在上面的代码完成从互联网下载 pdf 之前,我不希望执行以下代码。

                    File file = new File("/mnt/sdcard/Download/"+pdfName);
if (file.exists()) {
Uri path = Uri.fromFile(file);
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(path, "application/pdf");
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);

try {
startActivity(intent);
}
catch (ActivityNotFoundException e) {
Toast.makeText(PDFActivity.this,
"No Application Available to View PDF",
Toast.LENGTH_SHORT).show();
}
}else{
Toast.makeText(PDFActivity.this,
"File doesn't exist.",
Toast.LENGTH_SHORT).show();
}
}
}

最佳答案

您应该实现 AsyncTask 来下载 PDF 文件。

  • 在 doInBackground() 中,下载 PDF 文件
  • 在 onPostExecute() 内,对下载的 PDF 执行任何您想执行的操作。

关于android - 如何知道在android开发中下载是否完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11189942/

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