Chronometer和ViewModel的问题



按下按钮可更改chronometerStateLDataChronometer启动,在转动屏幕后,Observer再次执行代码,但Chronometer不启动。

viewModel.chronometerStateLData.observe(viewLifecycleOwner, Observer {
Utils.setSettingChronometer(binding.timerRecord)
binding.timerRecord.start()
})
public static void setSettingChronometer(Chronometer chronometer) {
chronometer.setOnChronometerTickListener(chronometer1 -> {
long time = SystemClock.elapsedRealtime() - chronometer1.getBase();
int h = (int) (time / 3600000);
int m = (int) (time - h * 3600000) / 60000;
int s = (int) (time - h * 3600000 - m * 60000) / 1000;
String t = (h < 10 ? "0" + h : h) + ":" + (m < 10 ? "0" + m : m) + ":" + (s < 10 ? "0" + s : s);
chronometer1.setText(t);
});
}

我解决了我的问题。当我创建片段时,我没有检查if (savedInstanceState == null),所以每次我翻转屏幕时,都会创建一个新的片段。

最新更新