20172303 20172322 2017-2018-2 暑假作业 结对编程项目-舒尔特方格(增补:计时器的加入与页面优化)

增补:计时器的加入。

增补计时器的原因及动机

  • app本身过于简单,在课上展示过后显得过于单薄。
  • 学姐提出了一些建议。
  • 想多加分。

添加过程

因为我们之前在做app的时候就已经想到加入计时器,但由于当时时间限制与心理准备不充分并未加入计时器功能,但是我们在想到时就已经查到了相关方法。

Timer

我们在网上搜索“andriod计时器”时出现的便是Timer方法。于是,我们便决定使用Timer方法来实现及时功能。

实践代码

  • 首先,我们需要支持HandlerLeak并且复写了handleMessage
    @SuppressLint("HandlerLeak")
    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            switch (msg.what) {
                case 1:
                    mlCount++;
                    int tatalSec = 0;
                    int msec = 0;
                    //精确到0.01秒
                    tatalSec = (int) (mlCount / 1000);
                    msec = (int) (mlCount % 1000);//毫秒
                    sec = (tatalSec % 1000);//秒

                    try {
                        time = String.format("%1$02d:%2$03d", sec, msec);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                    break;
            }
            super.handleMessage(msg);
        }
    };

我们也对计时后的时间显示格式做出了一定的规范。

  • 之后我们对比着已有的计时器模版写下了startTime方法
    //开始时间
    private void startTime() {
        task = new TimerTask() {
            @Override
            public void run() {
                if (msg == null) {
                    msg = new Message();
                } else {
                    msg = Message.obtain();
                }
                msg.what = 1;
                handler.sendMessage(msg);
            }
        };
        timer = new Timer(true);
        timer.schedule(task, 0, 1);
    }
  • 最后在Oncreate中加入了startTime方法。

虽然这几步看起来比较轻松,但是这是我们两个人花了星期天的整个下午才实现的功能,实现过后我们都比较开心,然后就出去吃麦当劳啦!

其他值得提一下的地方

  • 我们优化了界面,看起来没有之前那么单调啦!

  • 我们让介绍页面变得不可修改

基础实现的博客地址:点击这里

posted @ 2018-09-10 22:57  zhangyeye233  阅读(222)  评论(0编辑  收藏  举报