计时器chronometer补充

项目中要实现关于安卓控件chronometer这部分的功能需求:

1、计时器的功能对用户答题时间进行时间统计,用户答完该题,进入下一题,计时器接续上一题的结束时间继续计时;

2、用户可以跳出答题界面,然后进入主页面,再次选择其他题进入答题界面,这时候计时器接续跳之前的时间断点继续计时;

其实关键点就是,计时器停止计时的时候,使用一个全局的静态变量(静态的原因,当用户跳出答题界面的时候,再次进入答题界面会从onCreat()函数开始执行,所以要使用静态变量保存;全局的原因是因为程序任何修改计时器的地方都可以对其进行修改)保存这个值,然后每次在计时器开始计时的时候,先取出这个静态变量的值,然后从这个断点开始计时。项目中我使用的是public static String timer = “00:00”来进行初始化和保存

//首先是timer停止的时候,进行保存变量
   chronometer.stop();
 timer = chronometer.getText().toString();
 //onCreat函数里,对该题是否做过进行判断,如果做过,就停止计时,否则开始计时
 if(reDoFlag ==0 && GPUtils.setHasDone.contains(String.valueOf(subjectLoaded-1))&& GPUtils.setHasDone.size()!=0) {
              
               chronometer.stop();
         
           }else   chronometer.start();
//然后在每次计时器start之前,首先从静态变量中取值,从断点处进行计时

String[] timeTemp = timer.split(":");
            long time = (Integer.parseInt(timeTemp[0])*60+Integer.parseInt(timeTemp[1]))*1000;
            long base = SystemClock.elapsedRealtime();
            chronometer.setBase(base-time);
            chronometer.start();
            
原文地址:https://www.cnblogs.com/lucky-star-star/p/3878848.html