【发布时间】:2019-03-12 19:29:35
【问题描述】:
所以我的应用有 1 个活动和 4 个片段,其中一个有 Chronometer 来显示经过了多少时间。
它工作正常,但我有一个问题,每次我移动到另一个片段并返回时,计时器都会回到 00:00。
我知道这是因为我的 startStopWatch() 方法在 OnCreateView 中,但是有什么方法可以让它从它停止的地方继续?
是否可以使用 Bundle 类来解决这个问题?如果有,怎么做?
这是我的 Chronometer 代码,都在一个片段中:
public class FirstFragment extends Fragment {
Chrhonometer chronometer;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View view = inflater.inflate(R.layout.fragment_memo, container, false);
chronometer = view.findViewById(R.id.stop_watch);
chronometer.setFormat("%s");
chronometer.setBase(SystemClock.elapsedRealtime());
startStopWatch();
}
}
和方法:
private void startStopWatch() {
if (chronometer.getBase() != 0) {
chronometer.setBase(SystemClock.elapsedRealtime());
} else {
chronometer.setBase(chronometer.getBase() + SystemClock.elapsedRealtime());
}
chronometer.start();
}
private void stopStopWatch() {
chronometer.setBase(SystemClock.elapsedRealtime());
chronometer.stop();
}
提前致谢。
【问题讨论】:
标签: android android-fragments timer stopwatch chronometer