Android:处理多个下载的服务

时间:2011-08-31 16:12:56

标签: android multithreading service download

我需要一些指导方针来面对以下情况。让我们假设我必须重新创建Android市场,现在我面临应用程序下载问题。 我已经使用IntentService完成了一个naif实现。如您所知,intentservice当时执行一次下载,并自动创建一个线程来处理它。每次下载开始时都会发送一个显示进度条的通知。下载完成时也一样。它不能中止下载或管理队列。

现在我必须把它变成更有效的东西。基本上我必须使用Sercvice为每次下载创建一个新线程,它能够同时处理更多的线程。 例如: 我有一个列出所有活动的活动列表。假设我单击应用程序1(打开一个名为APPLICATION的新活动),然后单击下载按钮。服务启动,创建线程1并开始下载。 然后用户返回LIST活动并单击应用程序2开始第二次下载。 现在我有2个下载运行,这意味着我需要两个不同的通知,有两个不同的进度条。

我能做到。我无法做到的是:

  1. 如果用户返回LIST活动并进入应用程序1的页面,他必须能够中止下载1,其他下载也是如此。这意味着每个应用程序页面都需要某种方式来引用正在执行下载并杀死它的特定线程。有什么建议或例子吗?我怎样才能传递给线程的引用?

  2. 除了通知栏上显示的进度条外,如果我进入正在下载的应用程序页面,我还需要查看进度条。我如何将已经存在的相同进度条填入应用程序活动中?

1 个答案:

答案 0 :(得分:0)

为什么不手动管理通知区域中的进度条。这将使您能够设计接口以根据需要添加/删除/更新这些下载通知

请参阅此示例

http://united-coders.com/nico-heid/show-progressbar-in-notification-area-like-google-does-when-downloading-from-android

更多例子 http://www.google.co.uk/search?q=progress+bar+notification+android