使用 onMessage (OkHttp) 的输出?
Posted
技术标签:
【中文标题】使用 onMessage (OkHttp) 的输出?【英文标题】:Use output from onMessage (OkHttp)? 【发布时间】:2021-08-06 00:06:17 【问题描述】:我使用 OkHttp 从 WebSocket 获取数据,然后使用 runOnUiThread (MainActivity) 在 android 模拟器上显示它。有多个服务器响应(事件)。
我的 WebSocketListener 的 onMessage 函数是这样的:
@Override
public void onMessage(WebSocket webSocket, String text)
while (text.contains("someEventName"))
output("Receiving : " + text);
这就是我将特殊事件显示为文本响应的方式。
是否有可能将这些数据作为某个新对象或全局变量实际获取,以便在其他任何地方使用它或将其传递给其他活动?
假设 - 使用 OkHttp、套接字及其侦听器,我还应该做什么才能使用/保存/传递来自服务器的数据作为文本?
onMessage
到底发生了什么?我们只是读书吗?
【问题讨论】:
【参考方案1】:我还应该做什么才能使用/保存/传递来自服务器的数据作为文本
您可以在初始化服务器代码之前创建 BlockingQueue。然后,您可以通过 onMessage
函数将来自服务器的文本添加到此队列中,并从该队列中读取一个单独的线程。这本质上需要一些并发编程。
onMessage 中到底发生了什么?我们只是读书吗?
由于这是一个回调函数,并且不被任何用户代码调用,所以我们不能真正返回任何值(将控制返回到哪里?),因此它是一个“公共无效”函数。
【讨论】:
如果这解决了您的问题,请“接受”答案。以上是关于使用 onMessage (OkHttp) 的输出?的主要内容,如果未能解决你的问题,请参考以下文章
在 onMessage 注释中具有多个数据的 Websocket