按下按钮可更改chronometerStateLData
,Chronometer
启动,在转动屏幕后,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)
,所以每次我翻转屏幕时,都会创建一个新的片段。