1
我正在开发一个Android应用程序,允许用户从列表视图中选择一个文件并下载它。我有一个AsyncTask
提取文件,并为每个文件设置一个onClickListener
允许下载该文件时,用户点击它。我已经遍布互联网,但我无法从AsynTask
获得下载管理器工作。任何帮助都会有所帮助。使用下载管理器从AsyncTask下载文件
我正在开发一个Android应用程序,允许用户从列表视图中选择一个文件并下载它。我有一个AsyncTask
提取文件,并为每个文件设置一个onClickListener
允许下载该文件时,用户点击它。我已经遍布互联网,但我无法从AsynTask
获得下载管理器工作。任何帮助都会有所帮助。使用下载管理器从AsyncTask下载文件
下面是简单的例子:
btnDown.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
String dir = Environment.DIRECTORY_MUSIC;
dir += "/klp";
File fileDir = new File(dir);
if (!fileDir.isDirectory()) {
fileDir.mkdir();
}
Toast.makeText(Detail.this, "Download song " + name, Toast.LENGTH_SHORT).show();
// Download File
DownloadManager.Request request =
new DownloadManager.Request(Uri.parse(url));
request.setDescription(nameFile);
request.setTitle(name);
// in order for this if to run, you must use the android 3.2 to compile your app
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) {
request.allowScanningByMediaScanner();
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);
}
request.setDestinationInExternalPublicDir(dir, nameFile);
// get download service and enqueue file
DownloadManager manager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE);
manager.enqueue(request);
}
});
哪些方面的解决方案不起作用? HTTP连接失败?你没有得到在UI线程上发布的结果吗?需要更多信息来提供有用的答案。 – mmccomb
当我点击文件后,我收到一个通知,表明该文件正在下载,但没有出现在通知托盘中 –