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

DownloadManager主要用來進(jìn)行長時(shí)間http下載,是個(gè)系統(tǒng)后臺服務(wù)。連接出錯(cuò)了能自己重連,重啟了也能繼續(xù)連。

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.對請求設(shè)置參數(shù)(常用的)與開始下載

//設(shè)置允許使用的網(wǎng)絡(luò)類型,移動(dòng)網(wǎng)絡(luò)與wifi都可以
down.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE|DownloadManager.Request.NETWORK_WIFI);

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

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

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

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

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

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

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

 

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

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

 

4.接收下載完成信息

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

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

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

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

 

5.remove(long... ids)

取消正在下載的任務(wù)或者刪除下載了一部分或者全部的文件,刪除對應(yīng)的數(shù)據(jù)記錄。

6.id怎么獲取

可以監(jiān)聽數(shù)據(jù)庫文件/data/data/com.android.provider.downloads/database/downloads.db。數(shù)據(jù)庫有專門的監(jiān)聽類。也可以用文件監(jiān)聽類FileObsever監(jiān)測文件變化。

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

下載百分比也是這么獲取,數(shù)據(jù)庫里有兩個(gè)字段其中current_bytes是當(dāng)前下載bit數(shù),在等于total_bytes之前是更新的。

 

7.點(diǎn)擊正在下載的notification將會(huì)受到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服務(wù)器提供資源。文件存在了/sdcard/Android/data/<包名>/files/Music/我的歌聲里.mp3

權(quán)限:

 

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

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

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

 

穩(wěn)定

產(chǎn)品高可用性高并發(fā)

貼心

項(xiàng)目群及時(shí)溝通

專業(yè)

產(chǎn)品經(jīng)理1v1支持

快速

MVP模式小步快跑

承諾

我們選擇聲譽(yù)

堅(jiān)持

10年專注高端品質(zhì)開發(fā)
  • 返回頂部
主站蜘蛛池模板: 激情黄网| 天天摸天天草 | 日韩精品视频在线播放 | 午夜视频在线观看视频 | 亚洲伊人久久综合一区二区 | 日韩免费片| 钻石午夜影院 | 有码视频在线观看 | 国产2区 | 57pao国产成视频免费播放 | 国产伦久视频免费观看 视频 | 天天舔 | 精品国产一区二区三区国产馆 | 激情五月综合综合久久69 | 两性色午夜视频免费网 | 性free中国美女hd | 免费日批网站 | 午夜剧j| 天堂成人在线视频 | 日本护士xxxxx18.19 | 色偷偷综合网 | 一级做a爰全过程免费视频 一级做a爰片鸭王 | 日韩高清一区二区三区不卡 | 波霸欧美性猛交xxxxxx | 成人观看免费大片在线观看 | 成人综合视频网 | 国产日产高清欧美一区二区三区 | bt天堂中文资源在线 | 午夜视频在线观看视频 | 一级特级女人18毛片免费视频 | 欧美黄色视屏 | 999影院成 人在线影院 | 男人日批视频 | 成年人毛片网站 | 免费看v片网站 | 日本人甡交全过程 | 波多野结衣在线一区二区 | 青青草国产精品人人爱99 | 曰本三级香港三级三级人 | 欧美一级黄色录相 | 免费黄色毛片视频 |