【发布时间】:2014-07-22 13:26:02
【问题描述】:
我是套接字编程的新手,我已经阅读了几篇教程以了解何时开始。但是我对Android UI Thread和socket编程还是知之甚少。
使用 HTTP 请求时,您应该在不同的线程中执行操作,以防止 UI 阻塞并获得 ANR。所以我的问题是套接字连接呢?它是否与 HTTP 请求一样工作,其中代码执行停止,直到设备得到响应,因此,我必须在后台线程中执行操作以防止 ANR?
【问题讨论】:
-
使用HTTP请求与socket连接基本相同。一个 HTTP 请求建立一个 TCP 连接,然后发送一些可以被知道 HTTP 协议的程序理解的文本。因此,发送和接收数据包以及处理数据包数据将在工作时阻塞您的应用程序。这同样适用于套接字连接。因此,您应该始终在单独的线程中进行连接。编辑:我想不出在处理网络流量时不应该使用线程的任何应用程序(无论是否是 android),因此至少可以认为始终使用线程是一种好习惯。
标签: java android multithreading sockets