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