亚洲乱码卡一卡二卡三永久-亚洲乱码一二三四区-亚洲乱码一区二区三区在线观看-亚洲伦理一区-成人在色线视频在线观看免费大全-成人在线91

DownloadManager主要用來進行長時間http下載,是個系統后臺服務。連接出錯了能自己重連,重啟了也能繼續連。

1.得到DownloadManager

DownloadManager dm = (DownloadManager)getSystemService( DOWNLOAD_SERVICE).

 

2.得到連接請求對象

DownloadManager.Request   down=new DownloadManager.Request (Uri.parse("http://10.0.11.210:8080/test/我的歌聲里.mp3"));

 

3.對請求設置參數(常用的)與開始下載

//設置允許使用的網絡類型,移動網絡與wifi都可以
down.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE|DownloadManager.Request.NETWORK_WIFI);

//顯示在下載界面,即下載后的文件在下載管理里顯示
down.setVisibleInDownloadsUi(true);

//設置下載后文件存放的位置,不設置會存在data/data/com.android.provider.downloads/cache/下 面,設置后存在sd上的Android/data/<包名>/files/下面。第2個參數是files下再建目錄的目錄名,第3個參數是文 件名,如果第3個參數帶路徑,要確保路徑存在,第2個參數路徑隨便寫,會自己創建 down.setDestinationInExternalFilesDir(mContext, Environment.DIRECTORY_MUSIC, "我的歌聲里.mp3"); 

//在通知欄顯示下載詳情,比如百分比。       
 down.setShowRunningNotification(true)(API 9); //默認是true,改為false需要權限android.permission.DOWNLOAD_WITHOUT_NOTIFICATION。

此方法被setNotificationVisibility(int visibility)(API  11)取代。

//以sd卡路徑為根路徑,與上方法只有一個有效。第一個參數創建文件夾用的是mkdir
                down.setDestinationInExternalPublicDir(Environment.DIRECTORY_MUSIC, "我的歌聲里.mp3");

//將下載請求放入隊列
                manager.enqueue(down);

// 下載完成后保留 下載的notification。文檔上寫明參數需要API 12以上。4.0的手機開始。

 

[java] view plaincopy在CODE上查看代碼片派生到我的代碼片

  1. down.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);  

 

4.接收下載完成信息

廣播接收下載完成信息,Action為DownloadManager.ACTION_DOWNLOAD_COMPLETE。

能得到下載完成的文件存在數據庫中的ID:long downId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, -1);

getUriForDownloadedFile(long id)能得到文件存儲的URI。

也可以通過new一個DownloadManager.Query再setFilterById(long... ids),接著用DownloadManager的query(DownloadManager.Query query)來得到Cursor對象

 

5.remove(long... ids)

取消正在下載的任務或者刪除下載了一部分或者全部的文件,刪除對應的數據記錄。

6.id怎么獲取

可以監聽數據庫文件/data/data/com.android.provider.downloads/database/downloads.db。數據庫有專門的監聽類。也可以用文件監聽類FileObsever監測文件變化。

得到變化的數據行。數據庫里的數據并不是在下載完后才插入的,而是下載時通知欄上百分比每變化一次就更新一次。

下載百分比也是這么獲取,數據庫里有兩個字段其中current_bytes是當前下載bit數,在等于total_bytes之前是更新的。

 

7.點擊正在下載的notification將會受到Action為DownloadManager.ACTION_NOTIFICATION_CLICKED的廣播。

 

下載示例代碼:

[java] view plaincopy在CODE上查看代碼片派生到我的代碼片

  1. private void begainDownload() {  

  2.     DownloadManager dm = (DownloadManager)getSystemService( DOWNLOAD_SERVICE);  

  3.     DownloadManager.Request   down=new DownloadManager.Request (Uri.parse("http://10.0.11.210:8080/test/我的歌聲里.mp3"));  

  4.     down.setVisibleInDownloadsUi(true);  

  5.     down.setDestinationInExternalFilesDir(this, Environment.DIRECTORY_MUSIC, "我的歌聲里.mp3");  

  6.     down.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);  

  7.     dm.enqueue(down);  

  8. }  

tomcat服務器提供資源。文件存在了/sdcard/Android/data/<包名>/files/Music/我的歌聲里.mp3

權限:

 

[html] view plaincopy在CODE上查看代碼片派生到我的代碼片

  1. <uses-permission android:name="android.permission.INTERNET"/>  

  2. <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>

 

穩定

產品高可用性高并發

貼心

項目群及時溝通

專業

產品經理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽

堅持

10年專注高端品質開發
  • 返回頂部
主站蜘蛛池模板: 亚洲一区色图 | 国产一区二区三区成人久久片 | 日本一区二区三区中文字幕视频 | 影音先锋天堂网 | 大香网伊人久久综合网2020 | 欧美高清亚洲欧美一区h | 国产尤物二区三区在线观看 | 欧美三级一区二区三区 | 欧美成a高清在线观看www | 国产成人精品免费大全 | 久热天堂 | 男女一进一出无遮挡黄 | 国产亚洲精品影达达兔 | 任你躁久久精品6 | 福利午夜视频 | 成人亚洲网站www在线观看 | 日本中文字幕在线看 | 青草青草久热精品视频在线网站 | 18性夜影院午夜寂寞影院免费 | 午夜视频在线观看区二区 | 亚洲日韩中文字幕一区 | 波多野结衣一区2区3区 | 欧美韩国日本在线 | 欧美一级片在线视频 | 国产观看精品一区二区三区 | 色综合久久久久久久久五月 | 日韩精品欧美激情亚洲综合 | 日本高清中文字幕在线观穿线视频 | 蝌蚪网在线视频 | 手机亚洲第1页 | 国产一区二区免费播放 | 第四色亚洲色图 | 啪啪网址大全 | 亚洲人成在线观看一区二区 | 亚洲成年人网址 | 男女午夜视频 | 99在线免费 | 麻豆久久久久久久 | 日韩精品欧美视频 | 在线不卡日韩 | 久久国产成人午夜aⅴ影院 久久国产欧美日韩精品 |