18842388900

网站建设 APP开发 小程序

Article/文章

记录成长点滴 分享您我感悟

您当前位置>首页 > 知识 > 网站建设

在Android

中使用DownLoadManager DownloadManager主要用于长时间的http下载,是一种系统后台服务。如果连接错误,您可以重新连接。如果重新启动,则可以继续连接。

1.获取DownloadManager

DownloadManagerdm=(DownloadManager)getSystemService(DOWNLOAD_SERVICE)。

2.获取连接请求对象

DownloadManager.Request down=new DownloadManager.Request(Uri.parse('http://10.0.11.210: 8080/test/my song.mp3'));

3.设置参数(通用)并开始下载请求

//设置允许的网络类型,移动网络和wifi可以down.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_MOBILE | DownloadManager.Request.NETWORK_WIFI);

//显示在下载界面中,即下载的文件在下载管理中显示down.setVisibleInDownloadsUi(true);

//设置下载后文件的位置,如果未设置将存在data/data/com.android.provider.downloads/cache/below,在Android/data /<上设置sd后包名>/files /下面。第二个参数是文件下目录的目录名称。第三个参数是文件名。如果第三个参数有路径,请确保路径存在。随便写入第二个参数路径。您将创建down.setDestinationInExternalFilesDir(mContext)。Environment.DIRECTORY_MUSIC,'My songs.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,'My songs.mp3');

//将下载请求放入队列manager.enqueue(down);

//下载完成后保留下载的通知。文档中的参数表明需要API 12或更高版本。 4.0手机启动。

[java]查看plaincopyCODE_ico.png%20

down.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);%20

4.接收下载完成信息

广播接收下载完成信息,Action为DownloadManager.ACTION_DOWNLOAD_COMPLETE。%20

可下载的文件存储在数据库ID中:long%20downId=intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID,-1);%20

getUriForDownloadedFile(long%20id)可以获取文件存储的URI。%20

您还可以使用新的DownloadManager.Query然后使用SetFilterById(long%20.%20ids)获取Cursor对象,然后使用DownloadManager的查询(DownloadManager.Query查询)

5.remove(long%20.%20ids)

取消正在下载的任务或删除部分或全部下载的文件并删除相应的数据记录。%20

6.如何获得身份

您可以收听数据库文件/data/data/com.android.provider.downloads/database/downloads.db。数据库有一个特殊的监听器类。您还可以使用文件侦听器类FileObsever来监视文件更改。%20

获取已更改的数据行。下载后不会插入数据库中的数据,但每次更改时通知栏的百分比都会更新。%20

还获得下载百分比。数据库中有个字段。 Current_bytes是当前下载的位数,在等于total_bytes之前更新。

7.单击正在下载的通知将受到广播的影响,其中Action为DownloadManager.ACTION_NOTIFICATION_CLICKED。

下载示例代码:

[java]查看plaincopyCODE_ico.png%20

privatevoidbegainDownload(){

DownloadManagerdm=(下载管理器)getSystemService(DOWNLOAD_SERVICE);%20

DownloadManager.Requestdown=newDownloadManager.Request(Uri.parse('http://10.0.11.210:%208080/test/my%20songs.mp3'));%20

down.setVisibleInDownloadsUi(真);%20

down.setDestinationInExternalFilesDir(this,Environment.DIRECTORY_MUSIC,'My%20songs.mp3');%20

down.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED);%20

Dm.enqueue(下);%20

}%20

tomcat服务器提供资源。该文件存在/sdcard/Android/data%20/<%20package%20name>/files/Music/my%20song.mp3%20

权限:

[html]查看plaincopyico_fork.svg

标签:& nbsp& nbsp沈阳app开发&营销类型网站建设& nbsp沈阳App Design& nbspAndroid DownLoadManager

网站建设,小程序开发,小程序制作,微信小程序开发,公众号开发,微信公众号开发,网页设计,网站优化,网站排名,网站设计,微信小程序设计,小程序定制,微信小程序定制

相关案例查看更多