答案 0 :(得分:2)
您可以使用内置的下载管理器下载:只需使用相应的参数调用此函数并开始下载,您也可以在通知栏中查看状态。
public long downloadFile(Context context, String fileName, String fileExtension, String destinationDirectory, String url) {
DownloadManager downloadmanager = (DownloadManager) context.
getSystemService(Context.DOWNLOAD_SERVICE);
Uri uri = Uri.parse(url);
DownloadManager.Request request = new DownloadManager.Request(uri);
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
request.setDestinationInExternalFilesDir(context, destinationDirectory, fileName + fileExtension);
return downloadmanager.enqueue(request);
}
答案 1 :(得分:0)
ChildEventListener childEventListener = new ChildEventListener() {
@Override
public void onChildAdded(DataSnapshot dataSnapshot, String
previousChildName) {
String fileName = dataSnapshot.getKey();
String downloadUrl = dataSnapshot.getValue(String.class);
// Add pdf to the display list.
// displayList contains urls of pdfs to be downloaded.
displayList.add(downloadUrl);
}
// Other methods of ChildEventListener go here
};
pdfRef.addChildEventListener(childEventListener);
答案 2 :(得分:0)
//create this Async task class to download file
class DownloadFileFromURL extends AsyncTask<String, String, String> {
/**
* Downloading file in background thread
* */
@Override
protected String doInBackground(String... f_url) {
int count;
try {
URL url = new URL(f_url[0]);
URLConnection conection = url.openConnection();
conection.connect();
// this will be useful so that you can show a tipical 0-100%
// progress bar
int lenghtOfFile = conection.getContentLength();
// download the file
InputStream input = new BufferedInputStream(url.openStream(),
8192);
// Output stream
OutputStream output = new FileOutputStream(Environment
.getExternalStorageDirectory().toString()
+ f_url[1]);
byte data[] = new byte[1024];
long total = 0;
while ((count = input.read(data)) != -1) {
total += count;
// writing data to file
output.write(data, 0, count);
}
// flushing output
output.flush();
// closing streams
output.close();
input.close();
} catch (Exception e) {
Log.e("Error: ", e.getMessage());
}
return null;
}
}
//call this async task class from somewhere like
new DownloadFileFromURL().execute(file_url,"/test.pdf");