I want to create a service similar to this one, (reference from Here), to download multiple files asynchronously in Android.
public static class Downloading
to download multiple files asynchronously in Android.
and also i think you want to download simultaneously.
i think you misused the intentservice
. intentservice
has a looper
and a handler
and each call to start causes to create a message for the handler. all messages are queued in the looper queue
and are served one at a time.
you should use normal service and do not use intentservice
because you want to download simultaneously not one at a time. extend service class and in onCreate
method you can create multiple threads and each thread can take a messages from onStartCommand
. i do not want to copy and paste the doc example because i think it is better to read all of the doc again. if you read it you can completely understand how to create service that handles multiple task simultaneously although it has created just one thread in the example.
http://developer.android.com/guide/components/services.html
what I want to is to create a background service watching the totalDownloadQueue
i think you do not need that. just when you create downloadtask
call service, your message
is delivered to service class and in that class you can create blockingqueue
to handle your messages by threads
.
Do the threads exist after the user exit the application?
yes and maybe no. it depends on the process, if the process exists yes but if the process has been destroyed no. again read lifecycle
of process to understand what process is killed or kept by android.
http://developer.android.com/guide/components/processes-and-threads.html
if this approach still can't resolve the issue about downloading files asynchronously? What other strategy should I adopt? Please provide some example code or reference so that I can modify on it.
you can use downloadmanager
but it downloads sequentially.
http://developer.android.com/reference/android/app/DownloadManager.html
http://blog.vogella.com/2011/06/14/android-downloadmanager-example/