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);



更多相关文章

  1. 手机扫描二维码下载APP,根据操作系统不同自动下载
  2. android classes.dex 反编译
  3. android数据保存
  4. 使用gradle来编译生成apk
  5. ActionBarSherlock的使用一
  6. delphixe 安卓 android操作 打电话,摄像头,定位等
  7. Android获取通讯录联系人显示在EditText上Demo
  8. android 中ids.xml资源的使用
  9. android 中断点续传理解

随机推荐

  1. c语言需要学到什么程度?
  2. c语言的代码是什么?
  3. c语言学好,都要学什么?
  4. c#如何防止sql注入?
  5. vb是什么意思?
  6. sqlhelper类是什么
  7. 游戏里redux什么意思
  8. c语言精通了能干什么?
  9. C#中default什么意思
  10. php与c语言有什么联系和区别?