2011-05-16 55 views
7

我正在开发一个Android应用程序,我需要从服务器获取数据(新闻项目)。我知道如何做到这一点,使用线程和/或AsyncTasks等,但由于我也需要在一个小部件中的数据,并且因为我想知道一般情况下首选什么方式,所以我想我会问你们。Android:从服务器获取数据的最佳方式(Widget +应用程序)

我想到了一些具体的实现,即;

1)基本上创建一个使用线程来获取数据,我从我的正常活动和Widget访问的类。也许缓存信息供以后使用。

2)使用服务,我可以从我的窗口小部件和应用程序请求数据。此服务不需要一直运行,但可以在需要数据时启动,并在获取并返回数据时停止。此服务可以定期启动以更新Widget的数据,或类似的东西。

可能有很多方法来解决这个问题,所以我很乐意听到你认为这是一个很好的解决方法。

由于提前, 埃里克

回答

2

您可以使用服务从服务器获取数据,然后将其保存在数据库中。您的服务可以发送您的应用/小部件可以注册的广播,以便在存在新信息时进行收听并自行刷新。

由于服务不需要一直运行,因此可以使用IntentService

IntentService是 服务可处理上 需求异步 请求(表示为意图)的基类。客户通过 startService(意图)调用发送请求; 服务根据需要启动,每个Intent依次使用 线程处理 ,并在运行 时停止工作。

如果您要定期更新,那么在每次更新之后,您的服务可以安排自己再次安排由android系统使用AlarmManager运行。

报警管理器是用于在您希望您的 应用程序代码在特定 时间运行 情况下,即使你的应用程序不 当前正在运行。

+0

听起来很不错,我会试试这个。谢谢! – Erik 2011-05-16 14:37:10

0

你可能要启动一个服务时,部件更新本身(updatePeriodMillis),并用它来获取数据存储它在一个sqldatabase以及刷新部件。

通过这种方式,数据被缓存,您可以从应用程序访问它,而不必复杂化。

相关问题