android 中downloadmanager学习
jopen
9年前
android系统中包含了很多的系统管理类,比如:PowerManager,AudioManager等,而使用downloadmanager来下载文件是件很方便的事情。
下面是关键代码:
DownloadManager manager = null; private long mDownloadReference;//当前下载任务的引用,通过该引用可以操作下载任务 //获取downloadmanager对象 manager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE); //创建监听下载完成的广播接收对象 DownloadCompleteReciver downloadeReciver = new DownloadCompleteReciver(); //注册广播监听器 registerReceiver(downloadeReciver, filter); 下载文件的详细代码: //指定要下载的文件 Uri uri = Uri.parse("http://10.0.2.2/test/data/get.mp3"); //创建下载任务对象 DownloadManager.Request request = new DownloadManager.Request(uri); //设置下载标题 request.setTitle("下载文件"); //设置下载描述 request.setDescription("正在使用downloadmanager下载文件"); //指定下载到本地的目录 request.setDestinationInExternalFilesDir(MainActivity.this,"down","hahaha.mp3"); //将下载任务加入到队列中,并返回下载任务的而引用 mDownloadReference = manager.enqueue(request); setTitle("正在下载"); /取消下载按钮的单机事件 //取消mDownloadReference指向的下载任务 manager.remove(mDownloadReference); //显示下载历史 Intent intent = new Intent();; intent.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS); //显示下载历史 startActivity(intent); //查询下载状态 //查询状态所在的列索引 int columnIndex = cursor.getColumnIndex(manager.COLUMN_STATUS); //获取下载状态的代码 int status = cursor.getInt(columnIndex); //下载原因所在的列的索引 int columnReason = cursor.getColumnIndex(manager.COLUMN_REASON); //获取下载原因的代码 int reason = cursor.getInt(columnReason); //获取下载文件存储在本地文件名所在列的索引 int filenameIndex = cursor.getColumnIndex(DownloadManager.COLUMN_LOCAL_FILENAME); //获取下载文件存储在本地的文件名 String filename = cursor.getString(filenameIndex);
来自: http://blog.csdn.net//mockingbirds/article/details/44837935