Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/235.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 使用下载管理器从AsyncTask下载文件_Java_Android - Fatal编程技术网

Java 使用下载管理器从AsyncTask下载文件

Java 使用下载管理器从AsyncTask下载文件,java,android,Java,Android,我正在开发一个Android应用程序,它允许用户从列表视图中选择一个文件并下载。我有一个AsyncTask获取文件,并为每个文件设置一个onClickListener,当用户单击该文件时,它允许下载该文件。我在互联网上到处都有,但我无法从AsynTask上找到下载管理器。任何帮助都将不胜感激。以下是一个简单的示例: btnDown.setOnClickListener(new OnClickListener() { @Override publi

我正在开发一个Android应用程序,它允许用户从列表视图中选择一个文件并下载。我有一个
AsyncTask
获取文件,并为每个文件设置一个
onClickListener
,当用户单击该文件时,它允许下载该文件。我在互联网上到处都有,但我无法从
AsynTask
上找到下载管理器。任何帮助都将不胜感激。

以下是一个简单的示例:

        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线程上发布的结果?需要更多的信息来提供有用的答案。单击文件后,我会收到一个通知,文件正在下载,但它不会出现在通知栏上