Kotlin 中使用okhttp下载图片/文件并获取下载进度(主要是与在Java中的区别)。

最近在用Kotlin写代码,需要写一个图片带进度下载的需求,在写到while 循环时被难住了,反复写了好几种方式,不是下载进度异常,就是不停的下载,导致图片下载失败,progressbar也不能更新。最后在Stack Overflow上找到解决方法。在此分享出来,希望能帮助大家。下面两张图分别Kotlin和Java 的下载代码,主要不同的地方就是while循环。


Kotlin 中使用okhttp下载图片/文件并获取下载进度(主要是与在Java中的区别)。_第1张图片
图片发自App-丨900


Kotlin 中使用okhttp下载图片/文件并获取下载进度(主要是与在Java中的区别)。_第2张图片
图片发自App-丨900

Kotlin 中的while循环有一个apply 函数,看源码其实是一个高阶函数,感兴趣的可以看一下。

Kotlin 中使用okhttp下载图片/文件并获取下载进度(主要是与在Java中的区别)。_第3张图片
图片发自App-丨900

最终效果,上传Gif不能大于5M,凑合看吧。


丨900

我的Gank妹子客户端,Kotlin版本后面也会更新上来。 BigGirl

你可能感兴趣的:(Kotlin 中使用okhttp下载图片/文件并获取下载进度(主要是与在Java中的区别)。)