我正在使用以下代码从 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();
}
}
}