2011-06-10 45 views
0

我有一个下载按钮的活动。当我点击它时,服务就开始了。该服务会创建通知并将其发布到通知栏中。如果我显示通知详细信息,我可以看到一个显示下载状态的进度条。Android如何使用Intentservice队列?

原因我不知道一个服务在主线程上运行,有人建议我使用intentservice来创建一个工作线程本身。所以一切都很好,我的GUI不会在下载过程中冻结。

我有一个问题。要使用intentservice,我必须在onHandleIntent方法内实现下载代码和通知部分。 现在我发现intentservice有一种每次管理意图一次的队列。所以如果我从活动中点击下载按钮两次,它会创建一个新的通知,开始下载,然后当它完成后再次输入onHandleIntent,它会创建第二个通知并开始第二个下载。 对我来说,将文件背对背下载并不是在一起很好,但至少我希望如果我按下两次下载按钮serivce上传通知说有2个下载等待。我不能这样做导致意图服务执行代码一次,并再次..........有没有办法解决它?

有没有办法处理队列手动说诸如....如果你有另一个意图这样做........更新通知.......然后继续与dirst下载....

另一个问题,一个意图的服务可以修改gui考虑到正在另一个线程工作,或者我必须使用一个处理程序并将消息发送回活动?

最后,whwere是创建的线程,只是在onCreated方法之后或onHandleIntent内?

+0

请清理你的问题,以便更容易理解。 – 2011-06-10 14:23:52

+0

任何人都可以帮助我? – Sgotenks 2011-06-13 13:43:50

回答

1

您可能会将SharedPreferences或Application类文件中的下载项目数量(均可全局访问)保存到IntentService中,以便将通知消息传递给IntentService。你的应用程序类可以有更新下载数字(总数,当前文件等)的方法。当IntentService被销毁或者下载完成并显示在通知中时,您可以更新它。

相关问题