yangfuhai / afinal

Afinal是一个android的ioc,orm框架,内置了四大模块功能:FinalAcitivity,FinalBitmap,FinalDb,FinalHttp。通过finalActivity,我们可以通过注解的方式进行绑定ui和事件。通过finalBitmap,我们可以方便的加载bitmap图片,而无需考虑oom等问题。通过finalDB模块,我们一行代码就可以对android的sqlite数据库进行增删改查。通过FinalHttp模块,我们可以以ajax形式请求http数据。详情请通过以下网址查看。
3.16k stars 1.49k forks source link

在一个按钮上连续点击触发下载及停止下载时会出各种问题 #82

Open feer921 opened 9 years ago

feer921 commented 9 years ago

使用FinalHttp下载文件:

支持断点续传,随时停止下载任务 或者 开始任务 FinalHttp fh = new FinalHttp();
//调用download方法开始下载 HttpHandler handler = fh.download("http://www.xxx.com/下载路径/xxx.apk", //这里是下载的路径 true,//true:断点续传 false:不断点续传(全新下载) "/mnt/sdcard/testapk.apk", //这是保存到本地的路径 new AjaxCallBack() {
@Override
public void onLoading(long count, long current) {
textView.setText("下载进度:"+current+"/"+count);
}

            @Override  
            public void onSuccess(File t) {  
                textView.setText(t==null?"null":t.getAbsoluteFile().toString());  
            }  

        });  

//调用stop()方法停止下载 handler.stop();

详细描述:比如一个按钮为启动下载(传入了true为可断点续传)及停止下载,但不知道是不是因为每次点击一次下载HttpHandler 会重新new出对象的原因,会造成多线程在下载同一个文件,造成onLoading()回调出的进度混乱,且有可以造成启动不了下载功能,且有可能造成下载完成后的文件有错误。