【发布时间】:2013-07-25 08:13:46
【问题描述】:
我无法调用 AsyncTask 和 IntentService。 我正在开发一个具有用户注册活动的 android 应用程序。当用户在注册活动中输入用户名时,我必须通过向服务器发送 HTTP 请求来检查用户名是否已被使用。来自服务器的响应是带有用户名的 JSON 对象。
请帮我接电话设计后台用户名检查 AsyncTask/IntentService 的优缺点。
【问题讨论】:
我无法调用 AsyncTask 和 IntentService。 我正在开发一个具有用户注册活动的 android 应用程序。当用户在注册活动中输入用户名时,我必须通过向服务器发送 HTTP 请求来检查用户名是否已被使用。来自服务器的响应是带有用户名的 JSON 对象。
请帮我接电话设计后台用户名检查 AsyncTask/IntentService 的优缺点。
【问题讨论】:
如果您使用的是 AsyncTask,那么这里就不需要 IntentService。如果您发布代码,我们可以向您展示您可能做错了什么,但是使用 AsyncTask 在线程上发出 HTTP 请求非常简单。
这是一个很好的例子,说明如何将其用于此目的: http://androidresearch.wordpress.com/2012/03/17/understanding-asynctask-once-and-forever/
基本上,AsyncTask 只是一个精美的 Thread 包装器,它允许您与显示线程对话。您可以使用执行 HTTP 调用的 Thread 和更新您的显示的 Runnable 来实现完全相同的结果,您的线程可以使用 Handler 调用该显示。
【讨论】:
来自这个有用的answer
您应该将 AsyncTask 用于短的重复性任务,这些任务是 与活动紧密相关,例如您当前正在尝试做的事情。 IntentService 更适合于计划任务(重复或 不)应该在后台运行,独立于您的活动。
所以这个建议也适合你。
除此之外,我建议您查看android volley
【讨论】:
IntentService 和 Asynctask 无论如何都没有可比性。
【讨论】: