Xutil框架相信很多Android开发程序员都不陌生,Xutil集注解、网络、图片加载、数据库操作与一身的Android端框架,更新的Xutil3更简单的方便,在这里不针对Xutil的中心内容进行讲解,主要讲在使用Xutil中发现的问题。
一、Xutil中0B文件无法下载问题
由于公司需要,对于文件下载、上传等需要对0B文件也做到兼容,但是后期测试发现Xutil3在下载0B文件后直接抛出了异常,具体的抛错地方如下。
如果文件下载正常的话,我们下载一个文件的执行顺序如下(正常情况下):onWaiting-->onStarted-->onLoading-->onSuccess-->onFinished。正常的情况下是这样的,但是在下载0B文件时,意想不到的是执行完onStarted后,直接进入了onError方法,错误如下,竟然提示没有Cache file not found???
对于0B文件下载的出错的处理,这里我偷了个懒,没有深入研究为什么抛出这个异常,而是在它回调到onError时,再进行进一步的判断,使用最基础的HttpURLConnection的方法上传,暂时处理一下这个问题(待深入-_-),具体代码如下。
/**
* 从网络Url中下载文件
*
* @param urlStr
* @param savePath
* @throws IOException
*/
private void downLoadFromUrl(String urlStr, String savePath) {
new Thread(){
@Override
public void run() {
super.run();
FileOutputStream fos = null;
InputStream inputStream = null;
try {
URL url = new URL(urlStr);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
//设置超时间为3秒
conn.setConnectTimeout(3