Giter Site home page Giter Site logo

multithreaddownload's People

Contributors

aspsine avatar bryant1410 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

multithreaddownload's Issues

How to resume a download

I have a download then i pause it. When i want to resume, i called DownloadManager.getInstance().download(link, callback); but it download from start. Can you tell me how can i resume a paused download?

Speed limitation

I need download speed limitation for each or all download tasks, and is able to set in configuration or on downloadRequest init. It is possible?

取消下载监听,但是不取消下载

比如我在单个页面,点击了下载操作,同时这里有进度条以及下载完成后的控件变化等。但是我希望,我点击返回后,这个是要继续下载的,只是不需要监听进度了。当前的是会继续监听,导致空指针错误

若url加签名 怎么解决

实际项目中 每次掉用下载前 url都是要签名的(签名之后有时间限制)。。。小弟菜鸟实习生,不知道应该怎改源码。。。这代码确实写的太漂亮了,好生佩服

Downloading large file will be damaged

hi ,
Thanks for your library ,i want download large files on the foreground service but sometimes downloaded files will be damaged ,please help me to resolve this error .
Tnx

get speed

Is There Any Method for get speed?

出现progress=100,没有回调完成方法。

Hi,感谢您的辛苦付出。在onProgress方法中打log显示progress=100,但是此时没有调用onCompleted方法。看到方法中存在synchronized代码块,但是没有分析出来原因。以下是我在onProgress中的规避方法。

// 处理有的下载在progress为100时不调用onComplete方法的问题
if (progress == 100) {
    if (mDownloadItem == null) {
        return;
    }
    final Long originId = mDownloadItem.getId();
    mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            // 当前progress为100时,5秒钟后判断当前item是否还是之前的,如果是手动调用onCompleted()。
            if (originId != null && mDownloadItem != null && mDownloadItem.getId().equals(originId)) {
                logger.info("exception data!!! it's still in onProgress 5s,deal it manually");
                try {
                    onCompleted();
                } catch (RemoteException e) {
                    e.printStackTrace();
                }
            }
        }
    }, 5000);
}

Migration from previous versions have to been implemented

Hi, Thank you for the great library.
I updated the library and have the following error message in my app W/System.err﹕ android.database.sqlite.SQLiteException: no such column: tag (code 1): , while compiling: select * from ThreadInfo where tag = ?
...

Protocol error for one of my urls!

I can download many files with your library, but for one of download urls I got protocol error!
this is my url:
http://***.ir/sources/books/files/1395/001-%20John%20Henry.mp3

error: fail audiocom.aspsine.multithreaddownload.DownloadException: Protocol error

How to resume download?

How can I resume my download when I pause it?

when I pause and call download function again, download start from zero again! I tried it with your file's url but problem not solved.

please help me and sorry for my weak English!

Exception when retry download

09-01 09:59:05.386 23078-23168/? E/AndroidRuntime: java.lang.IllegalArgumentException: byteCount < 0: -5830920
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at com.android.okio.RealBufferedSource.read(RealBufferedSource.java:44)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at com.android.okhttp.internal.http.HttpConnection$FixedLengthSource.read(HttpConnection.java:469)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at com.android.okhttp.internal.Util.skipAll(Util.java:227)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at com.android.okhttp.internal.http.HttpConnection.discard(HttpConnection.java:239)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at com.android.okhttp.internal.http.HttpConnection$FixedLengthSource.close(HttpConnection.java:491)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at com.android.okio.RealBufferedSource.close(RealBufferedSource.java:204)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at com.android.okio.RealBufferedSource$1.close(RealBufferedSource.java:187)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at ?.util.multithreaddownload.util.IOCloseUtils.close(IOCloseUtils.java:14)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at ?.util.multithreaddownload.core.DownloadTaskImpl.transferData(DownloadTaskImpl.java:199)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at ?.util.multithreaddownload.core.DownloadTaskImpl.executeDownload(DownloadTaskImpl.java:148)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at ?.util.multithreaddownload.core.DownloadTaskImpl.run(DownloadTaskImpl.java:96)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1112)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:587)
09-01 09:59:05.386 23078-23168/? E/AndroidRuntime:at java.lang.Thread.run(Thread.java:818)

Big files cant be downloaded

i tested lib with this files(88kb, 10mb, 110mb)
when progress argu in onProgress equal 100 on Complete excuted, it seems logical but there is a problem.
for the first file (88kb) its worked perfect
but for second and third files download finished in onComplete function when size recived to 24.7 kb.

按暂停后有不短的延迟时间,过段时间后状态才改变

12-08 04:27:09.917 3669-3669/com.aspsine.multithreaddownload I/DownloadService: onStart()
12-08 04:27:09.917 3669-3669/com.aspsine.multithreaddownload I/DownloadService: onConnecting()
12-08 04:27:09.917 3669-3669/com.aspsine.multithreaddownload D/TEST: status=1
12-08 04:27:10.077 3669-3669/com.aspsine.multithreaddownload I/DownloadService: onConnected()
12-08 04:27:10.685 3669-3669/com.aspsine.multithreaddownload I/DownloadService: onProgress()
12-08 04:27:10.685 3669-3669/com.aspsine.multithreaddownload D/TEST: status=3
12-08 04:27:11.185 3669-3669/com.aspsine.multithreaddownload I/DownloadService: onProgress()
12-08 04:27:11.201 3669-3669/com.aspsine.multithreaddownload D/TEST: status=3
12-08 04:27:18.849 3669-3669/com.aspsine.multithreaddownload I/DownloadService: onDownloadPaused()
12-08 04:27:18.849 3669-3669/com.aspsine.multithreaddownload D/TEST: status=4
12-08 04:27:18.849 3669-3669/com.aspsine.multithreaddownload D/TEST: paused
12-08 04:27:18.849 3669-3669/com.aspsine.multithreaddownload D/TEST: paused updated

运行的是up的Demo,在Genymotion免费版上测试的,看log差不多是7秒左右。

猜想应该是硬件问题,然后在MX2上测试,情况良好,不过有时候也会,大概是2秒左右。

程序写的很棒,希望@Aspsine 能继续优化改进,谢谢。

why never changed thread num

when i set example max thread 10 and set thread num 5 always my file 5 thread and not change thread num for big file .

How to download files in background?

I want to download the file(s) if the app is open and the user is using the app.
In the example project when I am on main activity from Listview or Recycle View the downloading are on pause.

How to download the file in the background?

how to get progress from download thread?

How can I solve this problem?
I click on download button in activity X and use your download library, then I press back button and go to previous activity, download is continued in background. Then I go to activity X again and I want my progress bar show continued download, but it can't show it!
what can I do for this? I know that download is on progress but my progress bar can't set its progress...
please help :(
this does't worked: DownloadManager.getInstance().getDownloadProgress("test1.mp3").getProgress()

下载完成的任务,重新进入APP,提示未下载

下载后的文件已经保存到SDCard里面了,有什么办法进入下载页面的时候,就知道该任务已经完成了?我发现任务已经有了下载,我下次进的时候,状态也正确,提示已经下载的进度也正确

On some device ‘pause()’ and 'cancel()' may lead force quit

#23

08-31 21:10:45.594 8700-8700/com.aspsine.multithreaddownload E/Parcel﹕ Reading a NULL string not supported here.
08-31 21:11:52.984 8700-8700/com.aspsine.multithreaddownload E/AndroidRuntime﹕ FATAL EXCEPTION: main
Process: com.aspsine.multithreaddownload, PID: 8700
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:163)
at libcore.io.IoBridge.recvfrom(IoBridge.java:506)
at java.net.PlainSocketImpl.read(PlainSocketImpl.java:488)
at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:240)
at java.io.BufferedInputStream.read(BufferedInputStream.java:283)
at com.android.okhttp.internal.http.HttpTransport$FixedLengthInputStream.read(HttpTransport.java:394)
at com.android.okhttp.internal.Util.skipByReading(Util.java:274)
at com.android.okhttp.internal.http.HttpTransport.discardStream(HttpTransport.java:195)
at com.android.okhttp.internal.http.HttpTransport.access$200(HttpTransport.java:32)
at com.android.okhttp.internal.http.HttpTransport$FixedLengthInputStream.close(HttpTransport.java:416)
at com.android.okhttp.internal.Util.closeQuietly(Util.java:110)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.disconnect(HttpURLConnectionImpl.java:102)
at com.aspsine.multithreaddownload.core.AbsDownloadTask.pause(AbsDownloadTask.java:69)
at com.aspsine.multithreaddownload.core.DownloadRequest.pause(DownloadRequest.java:148)
at com.aspsine.multithreaddownload.DownloadManager.pause(DownloadManager.java:136)
at com.aspsine.multithreaddownload.demo.ui.fragment.ListViewFragment.onItemClick(ListViewFragment.java:88)
at com.aspsine.multithreaddownload.demo.ui.fragment.ListViewFragment.onItemClick(ListViewFragment.java:33)
at com.aspsine.multithreaddownload.demo.ui.adapter.ListViewAdapter$1.onClick(ListViewAdapter.java:83)
at android.view.View.performClick(View.java:4635)
at android.view.View$PerformClick.run(View.java:19163)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5117)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:785)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:601)
at dalvik.system.NativeStart.main(Native Method)

Throws Download exception with some available link

I'm trying download some image from facebook use your library. But when i download, i found some links that your library can't download. It failed with DownloadException. Error message is "File error".
But when i download with an internet browser, i found no problem. Please check, thank you :)

Example: https://scontent.xx.fbcdn.net/hphotos-xlf1/v/t1.0-9/p720x720/12187696_986062654801567_4375931215754732524_n.jpg?oh=4ba7f5ce982629f94d6a8bd8a21cb879&oe=5744E33C

Finished Download Items Data , Removed From Database

Hi
when a file is downloaded completely and you close app and open again , Fully Downloaded Files are not specifid in the download manager list, only semi downloaded files data can specified
why ThredInfo Table gets clear after file download gets finished ?
how i can handle that a file is completely downloade and on next opening app install it?

看过您的代码,非常感谢

在慕课网上看到您的连接过来,之后就看了代码。非常感谢,从中学习到很多内容。
这里有点小建议,个人看法。
我觉得如果DownloadManager.getInstance().init();换成是,下面的写法,可能更灵活和方法,抄Volley,相信您也看过。
DownloadManager.newManager(context);设置默认的配置
DownloadManager.newManager(context,config);自定义配置,config里装filePath,ExecutorService。
这样用户一次定义完下载目录,和自己配置线程池。要么就使用您给的默认配置。也不需要再App里初始化,在用的UI页面就行。
manager.load(file,url,callback); 这里就不要file这个参数了,每次都写挺麻烦的。

onProgress参数int型

还没开始用,不过看到下载中的参数为int型,对于文件下载,这个长度应该不够吧?

出现progress=100,没有回调完成方法。

Hi,感谢您的辛苦付出。在onProgress方法中打log显示progress=100,但是此时没有调用onCompleted方法。看到方法中存在synchronized代码块,但是没有分析出来原因。以下是我在onProgress中的规避方法。

// 处理有的数据在progress为100时不调用onComplete方法的问题
if (progress == 100) {
    if (mDownloadItem == null) {
        return;
    }
    final Long originId = mDownloadItem.getId();
    mHandler.postDelayed(new Runnable() {
        @Override
        public void run() {
            // 当前progress为100时,5秒钟后判断当前item是否还是之前的,如果是手动调用onCompleted()。
            if (originId != null && mDownloadItem != null && mDownloadItem.getId().equals(originId)) {
                logger.info("exception data!!! it's still in onProgress 5s,deal it manually");
                try {
                    onCompleted();
                } catch (RemoteException e) {
                    e.printStackTrace();
                }
            }
        }
    }, 5000);
}

不知道怎么格式化代码,看着费点儿劲儿- -!

Demo运行报错

点击开始,然后暂停,报错,Demo是在主线程操作网络?这么明显的BUG不应该存在吧

FATAL EXCEPTION: main
Process: com.aspsine.multithreaddownload, PID: 8877
android.os.NetworkOnMainThreadException
at android.os.StrictMode$AndroidBlockGuardPolicy.onNetwork(StrictMode.java:1145)
at libcore.io.BlockGuardOs.recvfrom(BlockGuardOs.java:163)
at libcore.io.IoBridge.recvfrom(IoBridge.java:506)
at java.net.PlainSocketImpl.read(PlainSocketImpl.java:489)
at java.net.PlainSocketImpl.access$000(PlainSocketImpl.java:46)
at java.net.PlainSocketImpl$PlainSocketInputStream.read(PlainSocketImpl.java:241)
at java.io.BufferedInputStream.read(BufferedInputStream.java:283)
at com.android.okhttp.internal.http.HttpTransport$FixedLengthInputStream.read(HttpTransport.java:386)
at libcore.io.Streams.skipByReading(Streams.java:158)
at java.io.InputStream.skip(InputStream.java:227)
at com.android.okhttp.internal.Util.skipAll(Util.java:249)
at com.android.okhttp.internal.http.HttpTransport.discardStream(HttpTransport.java:190)
at com.android.okhttp.internal.http.HttpTransport.access$200(HttpTransport.java:32)
at com.android.okhttp.internal.http.HttpTransport$FixedLengthInputStream.close(HttpTransport.java:408)
at com.android.okhttp.internal.Util.closeQuietly(Util.java:110)
at com.android.okhttp.internal.http.HttpURLConnectionImpl.disconnect(HttpURLConnectionImpl.java:102)
at com.aspsine.multithreaddownload.core.AbsDownloadTask.pause(AbsDownloadTask.java:69)
at com.aspsine.multithreaddownload.core.DownloadRequest.pause(DownloadRequest.java:148)
at com.aspsine.multithreaddownload.DownloadManager.pause(DownloadManager.java:136)
at com.aspsine.multithreaddownload.demo.ui.fragment.ListViewFragment.onItemClick(ListViewFragment.java:88)
at com.aspsine.multithreaddownload.demo.ui.fragment.ListViewFragment.onItemClick(ListViewFragment.java:33)
at com.aspsine.multithreaddownload.demo.ui.adapter.ListViewAdapter$1.onClick(ListViewAdapter.java:83)
at android.view.View.performClick(View.java:4456)
at android.view.View$PerformClick.run(View.java:18490)
at android.os.Handler.handleCallback(Handler.java:733)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5094)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:893)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:702)
at dalvik.system.NativeStart.main(Native Method)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.