xutils目前已更新到3.0.在原有的框架基础上进行了大的更新改进,当然里面的调用方法也发生了一些改变,下面主要是我本人对于调用下载器的一些使用经验:
private Callback.Cancelable cancelable;
下面是方法的具体内容:
RequestParams requestParams = new RequestParams(path);
final String dowmloadPath = CommonUtil.fileTitle + "xxx.apk";// 下载保存路径
requestParams.setSaveFilePath(dowmloadPath);
if (progressCallback == null) {
progressCallback = new ProgressCallback<File>() {
@Override
public void onSuccess(File result) {
downloadDialog.dismiss();
openFile(new File(dowmloadPath));
}
@Override
public void onError(Throwable ex, boolean isOnCallback) {
if (update_flag) {
showCancelApp();
} else {
showToast("在线更新失败,请检查网络后重新打开应用进行更新");
}
}
@Override
public void onCancelled(CancelledException cex) {
}
@Override
public void onFinished() {
}
@Override
public void onWaiting() {
}
@Override
public void onStarted() {
}
@Override
public void onLoading(long total, long current,
boolean isDownloading) {
long l = current * 100 / total;
downloadDialog.setMessage(l + "%", (int) l);
}
};
}
cancelable = x.http().post(requestParams, progressCallback);
当方法启动后, x.http().post会回调一个cancelable ,通过cancelable.cancel()就可以关闭当前的下载进程了。