android - 使用按钮刷新数据与定期更新同时发生

标签 android web-services android-asynctask

我有一个棘手的面试问题,希望有人能帮助我。

场景:您有一个带有 Json 或 xml 的网络服务。单击一个按钮,您将如何准确地获取数据、解析数据并将其显示在用户界面上;除此之外,您如何获得每十五分钟更新一次数据的相同任务;

最后一个也是最棘手的一个:您将如何处理按钮和 15 分钟刷新同时发生的情况。

(我想我应该使用 AsyncTask 来处理最后一个,但不知道我应该怎么做)

提前致谢!

最佳答案

我不确定,但您可以使用 AsyncHttpClient 或其他类似的 HTTP 客户端从服务器请求 JSON 对象。然后可以使用 GSON 或其他方式解析 JSON 对象。如果是 XML,那么您可以使用 XML 解析器。

每 15 分钟执行一次,您可以使用 AlarmManagerService安排 15 分钟的 HTTP 请求。

对于处理最后一种情况,如果您使用 AsyncTask,那么您可能会发送两个请求并获得 2 个响应。那么您将使用哪一个来更新 GUI?我不确定,但可以通过使用 Synchronization 找到出路.您可以创建一个单独的类来处理 HTTP 内容。这可以是同步的,因此一次只使用该对象的一个​​实例。这样,按钮触摸将调用或服务。因为在创建一个对象时会有一个,所以在它被释放之前,第二个对象将无法获得一个实例。

不确定,但我想不出别的。

关于android - 使用按钮刷新数据与定期更新同时发生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18434762/

相关文章:

android - 当前使用的布局是横向还是纵向?

android - 由于 ViewModelProviders.of() 已弃用,我应该如何创建 ViewModel 的对象?

java - 如何解析 txt Web 服务

C#.net Windows 服务 - 如何在文件中记录 TCP 端口事件?

java - 由 : java. lang.IllegalArgumentException 引起:主机名不能为空

android - 如何确定Android Service 是否在前台运行?

android - Gradle 因 Facebook SDK、Fresco lib 和 Retrofit 而失败?

android - 从 Webservice 下载和查看 Android 应用程序中的 PDF

java - 如何在切换Fragment时停止AsyncTask?

android - 从 JSON 响应填充 Gridview