Android 具有相同目的服务的并行下载
我有一个Intent服务,可以处理一些文件的下载和解压。 现在我尝试使用这个相同的意图服务来下载同步文件,但是当我尝试启动第二次下载时,它只是将新的下载排队,我怎么能不将我的下载排队呢Android 具有相同目的服务的并行下载,android,Android,我有一个Intent服务,可以处理一些文件的下载和解压。 现在我尝试使用这个相同的意图服务来下载同步文件,但是当我尝试启动第二次下载时,它只是将新的下载排队,我怎么能不将我的下载排队呢 Intent service = new Intent(getActivity(), DownloadAndUnzipService.class); service.putExtra("post", false); service.putExtra("url", htmlUrlDownload); servic
Intent service = new Intent(getActivity(), DownloadAndUnzipService.class);
service.putExtra("post", false);
service.putExtra("url", htmlUrlDownload);
service.putExtra("filePath", filePath);
service.putExtra("destinationPath", destinationPath);
service.putExtra("receiver", mReceiver);
service.putExtra("typeDownload", Constants.HTML);
service.putExtra("metaDado", downloadContent.getMetaDado());
service.putExtra("isResuming", false);
getActivity().startService(service);
我没有放DownloadAndUnzipService代码,因为它太长了,我认为它不会有帮助,但如果有帮助,我可以更新它。如果DownloadAndUnzipService是IntentService的子类,这是预期的行为 rea更多一点在:
如果您想要并行下载,您需要自行管理后台线程
IntentService
专门设计用于排队多个调用,并一次运行一个
i、 它工作100%正确,但不幸的是你的设计是错误的
您应该研究像ThreadPoolExecutor
这样的东西,它将使您能够从一个线程池同时运行多个Runnables
您还将看到一些很好的示例代码。另外,我知道马克·墨菲的电子书有一些很好的并行下载代码
我不确定你是否需要将其投入到实际的
服务中
,或者你是否可以将其保留在你的活动中
——这取决于你的确切目标。如果你想使用相同的DownloadAndUnzipService对象,你必须在那里处理它,因此它的代码会有所帮助。也许您可以缩短它。您知道是否可以继续使用ResultReceiver与我的活动通信一个标准线程?