【发布时间】:2020-01-31 11:40:16
【问题描述】:
Android developer docs 表示read(byte[]) 和write(byte[]) 函数都是阻塞调用,因此不应直接从主线程调用它们。
我知道read() 仅在有要从套接字读取的内容时返回,但是每次我必须使用write() 将一个字节写入套接字的输出流时,我是否必须生成一个新线程作为文档说,如果接收方从套接字读取的速度不够快,这个函数也会阻塞。
此外,在文档的示例中,他们刚刚直接调用了write(),甚至评论说应该直接从活动中调用该函数。
那么处理write() 阻塞时的情况的正确方法是什么,以防止我的应用程序冻结并最终引发 ANR?谢谢!
【问题讨论】:
标签: android multithreading sockets android-bluetooth