android 下载多个文件怎么打开,如何在Android中使用IntentService同时下载多个文件?...

我想创建一个与此服务类似的服务(从Here引用),以在Android中异步下载多个文件。

public static class DownloadingService extends IntentService {

public static String PROGRESS_UPDATE_ACTION = DownloadingService.class

.getName() + ".newDownloadTask";

private ExecutorService mExec;

private CompletionService mEcs;

private LocalBroadcastManager mBroadcastManager;

private List mTasks;

public DownloadingService() {

super("DownloadingService");

mExec = Executors.newFixedThreadPool( 3 ); // The reason to use multiple thread is to download files asynchronously.

mEcs = new ExecutorCompletionService(mExec);

}

@Override

public int onStartCommand(Intent intent, int flags, int startId) {

return super.onStartCommand(intent, flags, startId);

}

@Override

protected void onHandleIntent(Intent intent) {

while(true)

{

if( cursor <= totalDownloadQueue.size() -1) { //totalDownloadQueue is a static ArrayList which contains numerous DownloadTask

mEcs.submit(totalDownloadQueue.get(cursor));

cursor++; // The variable cursor is also a static int variable.

}

}// continuously observing the totalDownloadQueue. If any download item is added. Then the thread are dispatched to handle that.

mExec.shutdown();

}

用户可以选择listview不同片段中的下载项目。我的策略是,随着用户选择项目并按下下载按钮,这些项目将被传递到DownloadTask其中,负责下载文件。然后将下载任务添加到中totalDownloadQueue。

这里有一些问题:

我知道intentservice是由某些已定义的操作触发的。但是我想要创建一个后台服务,监视totalDownloadQueue,如果downloadtask有新消息可用,那么将调用一些线程来操作任务。

如果我对这个定制商品这样做有什么副作用intentservice?

我应该使用什么替代类?请提供sample code说明,谢谢。

据我所知,线程的初始化仅被调用一次。如果我在应用程序的开头启动服务,并且在用户终止应用程序时应该杀死线程。(我的意思是当他swipe out打开窗口时。)用户退出应用程序后线程是否存在?

如果这种方法仍然不能解决有关异步下载文件的问题?我应该采取什么其他策略?请提供一些示例代码或参考,以便我对其进行修改。

我已经花了7天时间来处理复杂的要求,请帮忙!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值