我是套接字编程的新手,我已经阅读了一些教程来了解何时开始。但是我对Android UI Thread和socket编程仍然知之甚少。
当使用HTTP请求时,您应该在不同的线程中执行操作,以防止UI阻塞并获得ANR。所以我的问题是套接字连接呢?它是否与HTTP请求相同,其中代码执行停止,直到设备得到响应,因此,我必须在后台线程中执行操作以防止ANR?
是,套接字连接和读取操作阻塞。
对于HTTP,您可以使用与侦听器一起工作的异步HTTP库:http://loopj.com/android-async-http/
对于socket,你可以使用AsyncTask在后台做一些事情:
你不能在主线程上进行网络连接,它会抛出一个异常,因为如果超时,它会冻结应用程序。