【问题标题】:Android Asyntask for web service用于 Web 服务的 Android Asynctask
【发布时间】:2012-07-20 06:27:13
【问题描述】:

我正在开发一个完全基于从 Web 服务获取数据的应用程序。 在一项活动中,我必须调用几乎 5 6 个显示不同信息的不同 Web 服务。这个应用程序的目标是 v 2.3 到 4.x,因为主 ui 线程上不允许网络通信,所以我制作了 5 6 个 AsyncTask 类,因为它的后执行对我的显示有很大帮助。

现在我很困惑这种方法是对是错,制作了 5 6 个 AsyncTask 类(不能减少 Web 服务的数量或调用一个 AsyncTask,因为我必须一次又一次地检查数据)。这是一个好方法还是我应该改变我的模式,然后切换到什么方法。 使用这种方法,我的应用程序在所有设备上都运行良好且流畅。

【问题讨论】:

    标签: android web-services android-asynctask


    【解决方案1】:

    我认为这是一个很好的模式。它非常适合面向对象的设计,并且每个都执行自己的任务。

    如果你的 web 调用是一个接一个的,如果你真的想的话,你可以将它们组合成一个巨大的 AsyncTask。这肯定会减少您现在拥有的良好封装,并使某人更难以维护和调试。

    听起来你拥有的东西已经很好了,如果它运行良好,为什么要修复没有损坏的东西。

    【讨论】:

    • 谢谢,我只是想确保这种方法是正确的
    • 我一直在思考同样的问题。我有 3 个非常相似的网络调用,我正在考虑制作一个可以处理所有 3 个的更通用的 AsyncTask,但后来决定放弃。
    【解决方案2】:

    我会假设每个 ASyncTask 类都是对 web 服务的 API 请求,如果是这样的话,这是正确的做法。任何网络操作都应该在 UI 线程之外完成。

    还有一种更好的方法是使用 ThreadPools 来限制您希望一次保持活动的服务器请求的数量。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      • 1970-01-01
      • 2012-11-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多