Xutils3.0怎么立即暂停下载?

跋涉者901214 2017-01-16 02:37:19
找了一圈 没有找见 xutils3.0支持立即暂停吗? 求大神告知


RequestParams params = new RequestParams(downloadurl);
params.setAutoRename(true);//断点下载
params.setSaveFilePath(path+ filename);//
params.setExecutor(new PriorityExecutor(2));//自定义线程池,有效的值范围[1, 3], 设置为3时, 可能阻塞图片加载.
params.setCancelFast(true);//是否可以被立即停止.
cancelable = x.http().post(params, new Callback.ProgressCallback<File>() {
@Override
public void onSuccess(File file) {
isDownLoad = false;
db.updateDownLoadMessageType(spDto,DownLoadDbCst.DOWNLOADFINISH,"100");//下载完成

}
@Override
public void onError(Throwable throwable, boolean b) {
Toast.makeText(context,"下载失败"+throwable.getMessage(),Toast.LENGTH_SHORT).show();
isDownLoad = false;
}
@Override
public void onCancelled(CancelledException e) {
isDownLoad = false;

db.updateDownLoadMessageType(spDto, DownLoadDbCst.DOWNLOADDING,seekBarPercent+"");
}
@Override
public void onFinished() {
}
@Override
public void onWaiting() {
}
@Override
public void onStarted() {
}
@Override
public void onLoading(long l, long l1, boolean b) {
if (l1<l){
// dialog.setProgressWheel((float)l1/l);
// seekBar = l1/l;
System.out.println("xxxxxxxxx==="+ll+"~~~~"+l+"~~~~~~~"+(float)l1/l);
progressBar.setMax((int)ll);
progressBar.setProgress((int)(ll*((float)l1/l)));
}
}
});



现在用的取消是 cancelable.cancel(); 但是这个暂停下载是有延时的 效果很明显 想知道怎么能立即暂停下载?
...全文
532 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
兔子的博客 2018-06-19
  • 打赏
  • 举报
回复
HttpHandler 中cancel方法里面调用 // 不打算读取response body // 调用request的abort方法 request.abort(); // 当HttpClient实例不再需要是,确保关闭connection manager,以释放其系统资源 client.getConnectionManager().shutdown();
跋涉者901214 2017-07-06
  • 打赏
  • 举报
回复
引用 4 楼 qq_33756493 的回复:
同求,楼主解决了没
没有立即暂停的 只有取消 有个短暂的延时 只能通过UI展示来掩盖这个延时
跋涉者901214 2017-07-06
  • 打赏
  • 举报
回复
没有这个方法 只有取消下载 但是有个短暂的延时
昵称_Justin 2017-07-05
  • 打赏
  • 举报
回复
同求,楼主解决了没
小_寂_寞_ 2017-02-27
  • 打赏
  • 举报
回复
请问楼主问题解决了吗,我也遇到类似的问题,请不吝赐教。
跋涉者901214 2017-01-16
  • 打赏
  • 举报
回复
您好 我试了下,但是没有这个方法啊?为啥?


public interface Callback {
    public static class CancelledException extends RuntimeException {
        public CancelledException(String detailMessage) {
            super(detailMessage);
        }
    }

    public interface Cancelable {
        void cancel();

        boolean isCancelled();
    }

看了下源码 里面实现的cancel也是用Cancelable接口里的 跟我那个问题中的就是一样了
  • 打赏
  • 举报
回复
CallBack callbck=new Callback.ProgressCallback<File>(){。。。。。。} callback.cancel()

80,351

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧