java - 在 Socket.read() 处于活动状态时继续处理主要活动
问题描述
我有一个用作客户端并从服务器发送和接收数据的应用程序。在第一次连接之后,我想一直在 socket.read() 中准备好向我发送一些数据数据。问题是当我在 socket.read() 中时,用户不能在应用程序中做任何事情,比如向服务器发送新数据等等。
这是在 asyncTask 中的 doInBackground 上运行的。
InputStream inputStream = socket.getInputStream();
ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(1024);
byte[] buffer = new byte[1024];
while (true) {
int read = inputStream.read(buffer);
int bytesRead = read;
if (read == -1) {
break;
}
byteArrayOutputStream.write(buffer, 0, bytesRead);
response = byteArrayOutputStream.toByteArray();
break;
}
解决方案
推荐阅读
- python - 我做了一些修改后第二次使用设计的功能
- c# - txtCash_KeyUp 的无重载与委托“KeyEventHandler”匹配
- javascript - 为什么 jslint 在模板字符串上抱怨 Unexpected '`'
- python - IncrementalPCA 引发`RuntimeWarning:空切片的平均值`
- arrays - 一种根据第一个元素中的字符串长度从数组中删除元素的方法
- scala - 在 Scala 中初始化“最终”变量
- css - 如何在页面中找到准确的 CSS 选择器?
- python - Python 性能:将非常大的对象传递给函数,还是使用全局变量?
- html - 如何在引导程序中更改图像的宽度
- python - 是否有 Python 函数可以在标记化后用特定字符标记句子的开头和结尾?