在Android上处理HttpClient的最佳方法是什么?

时间:2011-08-31 15:39:28

标签: android httpclient

我可以找到许多教程,这些教程展示了如何在简单情况下构造和使用HttpClient。但是我没有找到任何适合更复杂案例的文件。

在我的应用程序中,我有很多活动,每个活动都必须能够使用HTTPS与远程WebService通过POST消息进行通信。我还必须登录此服务,因此我需要管理登录cookie。

目前,我为.onStart()中的每个Activity构建一个单独的HttpClient,并在.onStop()中释放它。我有一个工作队列,其中包含描述必须与远程服务通信的任务的详细信息的对象。我使用单个工作程序AsyncTask执行这些任务。这个解决方案似乎有效,但我不确定它是最优的解决方案。

我考虑过其他两个架构:

  1. 创建处理HttpClient的后台服务。这样我可以通过多个活动使用相同的实例,我想这会更好。但我不确定何时停止此服务并释放HttpClient。
  2. 仅在需要时创建HttpClient。因此,例如当用户单击启动远程调用的按钮时,我构建客户端,设置cookie和POST消息,执行它,并在完成后立即释放它。我认为这种方法非常糟糕,因为创建这样一个客户端所涉及的开销(特别是如果我使用HTTPS)。
  3. 所以任何人对HttpClient的工作方式有更深入的了解以及如何在Android中对其进行处理,请你评论一下这些approches /分享一些有用的提示吗?

    由于

2 个答案:

答案 0 :(得分:2)

解决方案1是好的。您的队列为空后,您可以停止服务。它与您的解决方案2相结合,因为服务仅在需要时启动。当您的用户单击某个按钮时,您将启动您的服务,例如,您绑定到该服务并向其发送请求。

答案 1 :(得分:-2)

的AsyncTask。在Google上搜索名为GrabURl的方法。