项目中要实现关于安卓控件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();

最新文章

  1. busybox的编译、使用及安装
  2. PHPstorm设置连接FTP,进行文件上传、下载、比较
  3. Linux系统编程(9)—— 进程之进程控制函数exec系列函数
  4. C#/IOS/Android通用加密解密方法
  5. poj 2769 Reduced ID Numbers(memset使用技巧)
  6. ASP.NET MVC IOC 之AutoFac
  7. android 数据存储分配的一些事
  8. 1753: [Usaco2005 qua]Who's in the Middle
  9. 201521123106 《Java程序设计》第11周学习总结
  10. Android 8.0 的部分坑及对应解决方法
  11. mi家前端面经
  12. spring boot 入门及示例
  13. Docker 系列四(自定义仓库).
  14. BZOJ 4318 OSU!(概率DP)
  15. MySQL基本简单操作01
  16. Javabean非空变量校验工具
  17. 2017-2018 ACM-ICPC, Asia Tsukuba Regional Contest
  18. PHP + Apache 在 Linux(centos7)系统下的环境搭建,基于 yum
  19. 再续session和cookie (网络整理)
  20. javascript中的this到底指什么?

热门文章

  1. redis 工具类 单个redis、JedisPool 及多个redis、shardedJedisPool与spring的集成配置
  2. 剑指offer 判断树是不是对称的
  3. jquery页面滑到底部加载更多
  4. FusionCharts参数大全及详细说明(中文)
  5. 整理书本(book)
  6. HDU 1203 I NEED A OFFER! 01背包 概率运算预处理。
  7. ntopng汉化记录
  8. 认识ExtJS(04)--常见Web框架的ExtJS改造
  9. linux nfs文件夹、文件共享
  10. 基于I2C EPPRPM(AT24C02B) + LCD12864实验