java - 将实时数据从主 Activity 发送到 fragment

标签 java android android-fragments

我有一个蓝牙耳机,它每次都会向主 Activity 发送消息。在主要 Activity 中,我有一个处理程序,它将处理这些消息并相应地输出。

我有一个将使用这些消息的 fragment 。我找不到将实时数据从 MainActivity 发送到 fragment 的方法,并且我不想将处理程序代码复制/粘贴到 fragment 。

有没有办法将实时数据从 mainActivity 发送到 fragment 。我提供了一些代码以便您更好地理解。

主要 Activity

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main_dashboard);
        //Bluetooth headset which send live data
        tgDevice = new TGDevice(bluetoothAdapter, handler);
        tgDevice.connect(false);
    }


/**
 * Handles messages from TGDevice
 * @param menu
 * @return
 */
private final Handler handler = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        switch (msg.what) {
            case TGDevice.MSG_STATE_CHANGE:

                switch (msg.arg1) {
                    case TGDevice.STATE_IDLE:
                        break;
                    case TGDevice.STATE_CONNECTING:
                        //androidVersion.setText("Connecting...\n");
                        break;
                    case TGDevice.STATE_CONNECTED:
                        //androidVersion.setText("Connected" + "\t" +wifiInfo.getSSID());
                        tgDevice.start();
                        break;
                    case TGDevice.STATE_NOT_FOUND:
                        //tv.append("Can't find\n");
                        break;
                    case TGDevice.STATE_NOT_PAIRED:
                        //tv.append("not paired\n");
                        break;
                    case TGDevice.STATE_DISCONNECTED:
                        //tv.append("Disconnected\n");
                }

                break;
            case TGDevice.MSG_POOR_SIGNAL:
                poorSignalValue = msg.arg1;
                actionBar.setTitle("Signal: " + poorSignalValue);
                Log.v("Poor", "Signal: " + poorSignalValue + "\n");
                break;
            default:
                break;
        }
    }
};

fragment 将利用不良信号以及其他变量。做这个的最好方式是什么?其他 fragment 也将使用 TGDevice。

最佳答案

我会使用类似EventBus的东西。您的 Fragment 将注册一个 Activity ,您的 Activity 将发布更新。

关于java - 将实时数据从主 Activity 发送到 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25388716/

相关文章:

java - 通过 Docker 在 Tomcat 上部署 .war - 404

java - String 是核心 Java 语言的一部分吗?

java - 从 ArrayList<int[]> 中删除 int[]

java - 发送到 Android 中的另一个 fragment 后, bundle 对象显示 null

java - Activity ActionBar 在 fragment 中不可见

java - 我可以将 REST 请求转发到其他资源吗?

android - 图像中的嵌套按钮

java - 从 Android 设备录制音频

android - AndEngine 导入 GLES2 项目未运行

java - Android dataBinding - TextView 根据 boolean 值不可见