gpt4 book ai didi

安卓线程问题

转载 作者:行者123 更新时间:2023-11-29 22:29:05 24 4
gpt4 key购买 nike

我已经知道如何停止线程,但我现在的场景有些不同,我在线程中监听来自服务器的数据

while (connected) 
{
byte[] buffer = new byte[1024];
if(in.read(buffer) > 0)// waits on this line
{
//do something
}
}

现在的问题是,虽然我设置了 connected = false;然后它也没有停止,因为它等待 in.read 所以,我也尝试了 Thread.interrupt 但没有运气

最佳答案

您可能应该改用 SelectableChannel 方法来读取/写入使用非阻塞 I/O 的套接字,并且您可以通过监听“事件”来管理多个连接。然后,您可以避免在 read() 等调用中被阻塞。

不幸的是,这与您当前使用的模型完全不同,因此转换不会很快或很容易,但值得付出努力。

查看这些资源:

http://developer.android.com/reference/java/nio/channels/SocketChannel.html http://www.exampledepot.com/egs/java.nio/NbClientSocket.html

关于安卓线程问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4896705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com