gpt4 book ai didi

java - 如何以 fragment 形式共享从套接字接收到的数据?

转载 作者:行者123 更新时间:2023-12-02 01:03:51 25 4
gpt4 key购买 nike

我在主要 Activity 中打开蓝牙套接字并从其他设备接收信息。

如下图所示,我的 Activity 中有两个 fragment 。

enter image description here

我如何在两个 fragment 中使用从套接字蓝牙接收的信息。注意: fragment 可能会发生变化,一般来说,我正在寻找共享接收到的数据的正确方法。我使用处理程序接收数据,如下所示:

private final Handler handler = new Handler() {
@Override
public void handleMessage(@NonNull Message msg) {
switch (msg.what) {
case BluetoothChatService.MessageConstants.MESSAGE_WRITE:
byte[] writeBuf = (byte[]) msg.obj;
String writeMessage = new String(writeBuf);
break;
case BluetoothChatService.MessageConstants.MESSAGE_READ:
byte[] readBuf = (byte[]) msg.obj;
String readMessage = new String(readBuf, 0, msg.arg1);
break;
case BluetoothChatService.MessageConstants.MESSAGE_DEVICE_NAME:
connectedDeviceName = msg.getData().getString(BluetoothChatService.MessageConstants.DEVICE_NAME);
Toast.makeText(getApplicationContext(), "Connected to "
+ connectedDeviceName, Toast.LENGTH_SHORT).show();
break;
case BluetoothChatService.MessageConstants.MESSAGE_TOAST:
Toast.makeText(getApplicationContext(),
msg.getData().getString(BluetoothChatService.MessageConstants.TOAST),
Toast.LENGTH_SHORT).show();
break;
}
super.handleMessage(msg);
}
};

最佳答案

您可以使用离线数据库,例如 Room 。 (不要忘记在后台线程中执行查询。使用执行器和线程池)。除此之外,您还可以使用 Intent 在某些 fragment 之间传输数据。最后,我认为在 fragment (或者一般来说,模块)之间共享数据的最佳方法是使用具有共享存储库的架构,例如 MVVM、MVC 等。它们都使用离线数据库作为存储库。

关于java - 如何以 fragment 形式共享从套接字接收到的数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60307880/

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