Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:从服务器获取数据的最佳方式(Widget+;应用程序)_Android_Android Service_Android Asynctask - Fatal编程技术网

Android:从服务器获取数据的最佳方式(Widget+;应用程序)

Android:从服务器获取数据的最佳方式(Widget+;应用程序),android,android-service,android-asynctask,Android,Android Service,Android Asynctask,我正在开发一个Android应用程序,需要从服务器获取数据(新闻条目)。我知道如何做到这一点,使用线程和/或异步任务等,但由于我也需要小部件中的数据,并且因为我想知道通常首选哪种方式,所以我想问问你们 我想到了一些具体的实现,即 1) 基本上创建一个类,它使用线程来获取数据,我可以从我的正常活动和小部件访问这些数据。可能会缓存这些信息以备将来使用 2) 使用服务,我可以从我的小部件和应用程序请求数据。此服务不需要一直运行,但可以在需要数据时启动,在获取并返回数据时停止。可以定期启动此服务以更新小

我正在开发一个Android应用程序,需要从服务器获取数据(新闻条目)。我知道如何做到这一点,使用线程和/或异步任务等,但由于我也需要小部件中的数据,并且因为我想知道通常首选哪种方式,所以我想问问你们

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

1) 基本上创建一个类,它使用线程来获取数据,我可以从我的正常活动和小部件访问这些数据。可能会缓存这些信息以备将来使用

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

可能有很多方法可以解决这个问题,所以我很想听听你认为什么是解决这个问题的好方法

提前感谢,,
Erik

您可能希望在小部件更新自身时启动服务(updatePeriodMillis),并使用它获取数据,将其存储在sqldatabase中以及刷新小部件


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

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

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

IntentService是的基类 处理异步数据的服务 请求(表达为意图) 需要客户端通过 startService(意向)调用;这个 根据需要启动服务,处理 每个意图依次使用一个工人 线程,并在运行时自动停止 失业

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

报警管理器用于 你想拥有你的 应用程序代码以特定的速度运行 时间,即使您的应用程序不可用 目前正在运行