【问题标题】:Chronometer restarts on change orientation天文台在改变方向时重新启动
【发布时间】:2016-08-05 11:32:23
【问题描述】:

我在你改变方向时重置了计时表的值,写的是真的,但没有帮助,求帮助,出了什么问题

@Override
protected void onSaveInstanceState(Bundle outState) {
timer = SystemClock.elapsedRealtime() - chronometer.getBase();
outState.putLong("timerValue", timer);
super.onSaveInstanceState(outState);
}

@Override
protected void onCreate(final Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.details_layout);

chronometer = (Chronometer) findViewById(R.id.chronometer);
chronometer.setBase(SystemClock.elapsedRealtime());
if (savedInstanceState != null) {
    chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
        public void onChronometerTick(Chronometer chronometer) {
            timer = savedInstanceState.getLong("timerValue");
            chronometer.setText(DateFormat.format("mm:ss", timer));
        }
    });
    chronometer.start();
} else {
    chronometer.setOnChronometerTickListener(new Chronometer.OnChronometerTickListener() {
        public void onChronometerTick(Chronometer chronometer) {
            timer = SystemClock.elapsedRealtime() - chronometer.getBase();
            chronometer.setText(DateFormat.format("mm:ss", timer));
        }
    });
    chronometer.start();
}
}

【问题讨论】:

    标签: java android orientation chronometer


    【解决方案1】:

    注意:每次用户旋转屏幕时,您的 Activity 都会被销毁并重新创建。当屏幕改变方向时,系统会销毁并重新创建前台 Activity,因为屏幕配置已更改并且您的 Activity 可能需要加载替代资源(例如布局)。

    见: How to contain value of android chronometer with change in orientation

    【讨论】:

    • 虽然这在理论上可以回答问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-07
    • 1970-01-01
    • 1970-01-01
    • 2021-12-26
    相关资源
    最近更新 更多