我可以在AsyncTask的doInBackground中进行网络连接

时间:2016-03-12 08:47:21

标签: android

我可以在AsyncTask的doInBackground中进行网络连接吗?如果没有用于此目的。

据我所知,我可以使用intentService进行长时间运行,但这会导致代码的复杂性。

请建议同样的。

4 个答案:

答案 0 :(得分:0)

您可以将volley用于网络数据。

答案 1 :(得分:0)

您可以在doInBackground中运行网络连接。 但是使用诸如凌空之类的库对你来说更好。 你可以了解凌空:

http://developer.android.com/training/volley/index.html

在后台凌空运行网络连接并在主线程中将结果发送给您,您无需担心网络线程。

答案 2 :(得分:0)

简短回答,您可以,您的网络操作将在后台运行。

长答案,我不建议为此目的使用AsyncTask。主要原因是:

  • AsyncTasks不处理活动生命周期和配置更改。这意味着,如果在创建活动时触发异步任务,例如,如果用户旋转屏幕,触发配置更改,您将运行孤立的AsyncTask(可能会在执行完应执行程序后泄漏内存和/或使应用程序崩溃)并且也可能会推出一个新的。

正如其他回复中所强调的那样,根据您的使用案例,您可以使用Volley

答案 3 :(得分:0)

简短的回答是:是的。

答案越长,网络通信总是很难,虽然与其他方法相比,使用AsyncTask时代码肯定更简单,但问题本身是相同的。