【问题标题】:Implementing asynchronous http requests on Android with AsyncTask使用 AsyncTask 在 Android 上实现异步 http 请求
【发布时间】:2011-04-21 03:45:10
【问题描述】:

我正在为 Web 服务构建这个客户端。 几乎所有东西都向服务器发出请求,现在我要做的是,我打开一个新线程并将所有请求放在同一个线程中。这意味着我在线程内以串行方式发出所有请求,这变成了等待用户的大量时间。为了使应用程序更快,我想以异步方式发出每个服务器请求。

我有一个 Networking 类来处理我需要的所有 HTTP 请求,我正在考虑制作它,以便每个请求都启动自己的线程。

我正在考虑为此使用 ASyncTask,但我注意到使用 ASyncTask 我需要为每个 http 请求创建一个类(一个用于 GET、POST、PUT 等的类)。这是最好的方法吗?有没有更有效/更干净的方式来做到这一点?你们有什么建议。

【问题讨论】:

  • 为什么你认为使用AsyncTask 你必须为每个http请求创建一个类? AsyncTask 只是将一些工作卸载到一个单独的线程并且不强制执行任何实现模式。只需从 doInBackground 调用 Networking 类。
  • denis.solonenko:嗯。这是一个需要考虑的想法。我会尝试看看它是如何工作的。

标签: android multithreading httpwebrequest android-asynctask


【解决方案1】:

似乎是一个设计决定,完全取决于您要做什么。 Android 中有多种执行任务的方式,具体取决于用户是在等待某些数据还是稍后在后台任务完成后收到通知。

我建议您查看比较 Android 中各种任务机制的 this 帖子。除此之外,还要通过 java.util.concurrent 包。

很抱歉,这不是一个具体的答案,但请听我说 - 这主要取决于您如何尝试为用户服务。所以只能提出想法。希望这会有所帮助。

【讨论】:

  • 谢谢!是的,这是一个设计决定,我真的在寻找关于要做什么的见解。那篇文章真的很有趣,我正在阅读它!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-09
  • 2012-03-09
相关资源
最近更新 更多