我有一个蓝牙耳机,它每次都会向主 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/