为了账号安全,请及时绑定邮箱和手机立即绑定

老师我也是跟着敲的,但是我下载一半,停止之后,再下载,进度条又从0开始了,咋回事啊?

老师我也是跟着敲的,但是我下载一半,停止之后,再下载,进度条又从0开始了,咋回事啊?

正在回答

8 回答

可能是进度没有保存起来,或者读取进度有问题,检查下

0 回复 有任何疑惑可以回复我~

\n是这个你斜杠写反了

hbjubu

0 回复 有任何疑惑可以回复我~

根据你的编程,如想在输出这三项,一样可以使用aa,也可以给LI一个id属性,getAttribute是元素节点就可以用该方法。

wllgmcizhjcnhhvreshnbmrtum

0 回复 有任何疑惑可以回复我~

今天刚学,我也碰到了类似的问题。通过debug发现是int溢出了。100*下载进度那里发生了溢出。解决办法是先将除数和被除数分别都转换称double,然后再将运算的结果强制转换为int。(看下面画线部分)

                    //下载进度发送广播给activity
                        mFinished+=length;
                        if(System.currentTimeMillis()-time>500){
                            time = System.currentTimeMillis();
                            intent.putExtra("finished", (int)(1.00*mFinished*100/(1.00*mFileInfo.getLength())));
                            mContext.sendBroadcast(intent);
                        }


1 回复 有任何疑惑可以回复我~

没有将finish存入线程信息中,mThreadDAO.updateThread(mThreadInfo.getUrl(),   mThreadInfo.getId(), mFinished);

在 download() 方法中,要将 mFileInfo 的finished 参数用数据库中的数值赋值:

    public void download() {
        // 读取数据库的线程信息
        List<ThreadInfo> threads = mThreadDAO.getThread(mFileInfo.getUrl());
        ThreadInfo threadInfo = null;
        if (threads.size() == 0) {
            
            //初始化线程信息
            threadInfo = new ThreadInfo(mFileInfo.getId(), mFileInfo.getUrl(),
                    0, mFileInfo.getLength(),0);
        }else{
            threadInfo = threads.get(0);
            mFileInfo.setFinished(threadInfo.getFinished());  //没有这步,mFileInfo的finished就是0
        }
        //创建子线程,进行下载
        new Thread(new DownloadThread(threadInfo)).start();
    }


0 回复 有任何疑惑可以回复我~

LZ找到原因了吗。我也是

0 回复 有任何疑惑可以回复我~
#1

扑通扑通丶我的人生 提问者

没有呢
2015-08-06 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消
Android-Service系列之断点续传下载
  • 参与学习       20444    人
  • 解答问题       87    个

想升职加薪么?本章课程你值得拥有,满满的干货,学起来吧

进入课程

老师我也是跟着敲的,但是我下载一半,停止之后,再下载,进度条又从0开始了,咋回事啊?

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信