gpt4 book ai didi

java - 同时监听服务中的多个流

转载 作者:行者123 更新时间:2023-12-01 10:13:55 25 4
gpt4 key购买 nike

我正在开发一个 Android 应用程序,它将数据从套接字连接中继到蓝牙接口(interface)。为了舒适地进行通信,我实例化了两个 BufferedReader,我想在 IntentService 中同时监听它们。此外,我希望该服务能够对蓝牙或 WiFi 连接丢失等事件使用react。但是,该服务应该运行,直到在服务器接口(interface)上收到特定的退出命令。

到目前为止,我使用了两个线程,但我不知道如何满足我的要求。

解决方案

解决方案是使用常规的Service而不是IntentService。在服务中,我使用两个异步方法,在我的例子中是 AsyncTasks 来连接到蓝牙设备和服务器。建立连接后,我将启动两个线程,使用阻塞的 readLine() 方法监听数据。在服务中,我只是不做任何事情来保持主线程空闲来处理蓝牙连接丢失。一旦用户希望断开连接,我的 Activity 就会终止服务。

最佳答案

不要使用 IntentService 来处理此问题,而是使用您自己的 Service 派生实现。 IntentService 旨在在临时后台线程上处理传入的 Intent 对象,然后在处理完所有 Intent 后完全关闭。您已经将大部分繁重工作移至您自己的后台线程中,因此无需使用 IntentService。但是,请确保您创建的任何 onStartCommand() 实现不会执行阻塞操作,因为它是在主线程上执行的。

关于java - 同时监听服务中的多个流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36013320/

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