系统自带的DownloadManager下载
IntentFilter filter = new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE);
mReceiver = new Receiver();
registerReceiver(mReceiver, filter);
//系统提供的DownloadManager来下载
private void startDownload() {
final DownloadManager downloadManager = (DownloadManager)getSystemService(Context.DOWNLOAD_SERVICE)
DownloadManager.Request request = new DownloadManager.Request(Uri.parse(DOWNLOAD_URL))
request.setDestinationInExternalFilesDir(this, null, "yixin.apk")
request.setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED)
request.setMimeType("application/vnd.android.package-archive")
request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE)
mDownloadId = downloadManager.enqueue(request)
public class Receiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent
OKHttp3是如今非常流行的Android网络请求框架,那么如何利用Android实现断点续传呢,今天写了个Demo尝试了一下,感觉还是有点意思
我们会用到OKHttp3来做网络请求,使用RxJava来实现线程的切换,并且开启Java8来启用Lambda表达式,毕竟RxJava实现线程切换非常方便,而且数据流的形式也非常舒服,同时Lambda和RxJava配合食用味道更佳
之前用了okhttputils框架实现下载功能根据数据库的id下载,本次使用okhttp下载,通过在tomcat里面部署绝对的文件路径,根据这个路径在加上文件名就可以下载了。
public void download(){
//String url=“https://sysisi.cn/uploadfile/downloadFile.up?id=206”;
// String basePath ...
最近对M3U8解析特别感兴趣,通过python脚本简单实现了解析m3u8和多线程下载之后,想用Java、Kotlin还有C/C++尝试实现。
本文主要实现使用OKHttp3实现非常简单的Http文件下载,然后保存在本地。
没有多线程的部分,多线程部分会单独写一个笔记
1.maven安装
<dependencies>
<dependency>
<groupId>com.squareup.okhttp3&l...
首先先感谢风神,核心代码源于他的这篇微博http://blog.csdn.net/cfy137000/article/details/54838608,思路很棒。基于他的代码做了一些改动,实现我所需功能。
先说下我的需求。我的需求是PC端先进行更新数据的管理,然后移动端登录时候会自动访问服务,传入mac值,获取需更新数据的信息。如下图所示:
//如何使用OkHttp获取下载资源的大小
public static long getContentLength(OkHttpClient mClient, String downloadUrl) {
Request request = new Request.Builder()
.url(downloadUrl)
.build