//livedata监听gyro数据的变化
viewModel.getGyro().observe((LifecycleOwner) getActivity(), new Observer<float[]>() {
@Override
public void onChanged(float[] array) {
if((System.currentTimeMillis()-viewModel.getTexttimeg().getValue())>200)
{
gyro.setText("X: " + Float.toString(array[0])+"\n"+"Y: " + Float.toString(array[1])+"\n"+"Z: " + Float.toString(array[2]));
viewModel.updatetexttimeg(System.currentTimeMillis());
}
}
});
该程序在fragment类中,初始化界面时使用该fragment,程序运行正常。但退出重进该fragment之后,程序运行出来if条件一直被判断为false,但if语句中的viewModel.updatetexttimeg(System.currentTimeMillis());执行了,而第一句settext却没有执行。只是为什么?按理说if不应该一直判断为false呀,而且texttimeg只在if为true时执行,但false的时候为什么也执行呀?既然执行了viewModel.updatetexttimeg(),那它的前一句为什么又不执行呢?