简介:我有3个活动,DashBoard
,Feed
和Events
。 DashBoard是应用程序启动时启动的。从那里用户可以转到Feed或活动。不同活动访问的独立下载程序类别(单独的线程)
问题:我想在启动DashBoard
时启动下载(当然,在单独的线程中)。从那里用户可以转到Feed
或Events
,并且下载将在进行中或已经完成。应该通知活动Feed
或Event
(在实例中合适),通知下载完成并且数据可用。什么是完成这个最好的方法?
我的当前代码:我有一个下载类DownloadHandler
,它由DashBoard
活动启动。该课程在单独的线程下载。该类跟踪一个名为completed
的布尔值。它被实例化为false
,当下载完成时,它被更改为true
。
当前我的类Feed
或Events
将在一个单独的线程中每隔100ms轮询变量completed
,以便它不会阻塞UI线程。当completed
变量变为true
时,它调用该特定类中的函数,该函数然后向DataHandler
类查询下载的数据。
这是行不通的,但我觉得我的逻辑有点混乱,而且必须有更好的方法来做到这一点。因为我使用两个单独的线程,一个用于下载,一个用于轮询已完成的变量。有一个更好的方法吗?
我已阅读AsyncTask
和不同的回调,但问题是我无法在特定的类中指定回调。因为当下载完成时,当前活动可能是DashBoard
,Events
或Feeds
。无法保证下载完成时哪些活动会在前面。
https://github.com/rajeshcp/Android-Download-Manager,看到这个基本上这是一个单一的类(DownloadManager),它会照顾你的应用程序内所有的http调用,你可以看看这,这是我在我的许多应用程序中使用的相同的东西,谢谢 – Triode 2012-03-26 15:03:50
恐怕下载管理器类不是我所需要的。我已经有一个有效的下载管理员课程。我只需要它能够根据哪个活动打开 – 2012-03-26 16:04:41