🧱 第一步:创建一个公共数据类(单例)
public class GlobalData extends ViewModel {
private static GlobalData instance;
private final MutableLiveData<String> flightStatus = new MutableLiveData<>();
private final MutableLiveData<Boolean> isConnected = new MutableLiveData<>();
public static GlobalData getInstance() {
if (instance == null) {
instance = new GlobalData();
}
return instance;
}
public MutableLiveData<String> getFlightStatus() {
return flightStatus;
}
public MutableLiveData<Boolean> getIsConnected() {
return isConnected;
}
}
🧱 第二步:页面中监听数据变化(Activity 或 Fragment)
在你的 Activity 中:
GlobalData globalData = GlobalData.getInstance();
globalData.getFlightStatus().observe(this, status -> {
flightStatusTextView.setText(status);
});
globalData.getIsConnected().observe(this, isConnected -> {
connectIcon.setVisibility(isConnected ? View.VISIBLE : View.GONE);
});
✅ 第三步:在任何地方修改数据,全局生效
GlobalData.getInstance().getFlightStatus().postValue(“起飞中”);
GlobalData.getInstance().getIsConnected().postValue(true);
🔄 如果希望多个 Activity 共享 ViewModel 数据?
建议用 ViewModelProvider 配合 Application:
public class MyApp extends Application {
private GlobalData globalData = new GlobalData();
public GlobalData getGlobalData() {
return globalData;
}
}
然后在任意页面中用:
GlobalData globalData = ((MyApp) getApplication()).getGlobalData();