为什么我的应用程序在点击重置后崩溃

时间:2014-01-04 20:23:15

标签: android

计时器可以正常启动然后重置并离开视图,但如果我开始时间,则离开视图并返回,然后点击重置应用程序崩溃。我知道大多数人在计时器未启动时不会重置,但是对于白痴打样我需要修复这个任何建议吗?

    public void startTimer(View view) {
        final Handler handler = new Handler();
        Timer ourtimer = new Timer();
        timerTask = new TimerTask() {
            public void run() {
                handler.post(new Runnable() {
                    public void run() {

                        int sec = n % 60;
                        int min = n / 60;

                        TextView timer = (TextView) findViewById(R.id.androidtimer);
                        timer.setText("" + String.format("%02d", min) + ":"
                                + String.format("%02d", sec));

//                      timer.setText(n + " Seconds");
                        n++;
                    }
                });
            }
        };

        ourtimer.schedule(timerTask, 0, 1000);

    }

    public void stopTimer(View view) {
        timerTask.cancel();
        TextView timer = (TextView) findViewById(R.id.androidtimer);
        timer.setText("--:--");
        timerTask = null;
        n = 0;
    }

1 个答案:

答案 0 :(得分:1)

我认为你的问题是只要你不启动计时器,timerTask就是null。 所以简单的if子句可能有所帮助。如果那不是问题,请发布例外。

   public void stopTimer(View view) {
        if(timerTask != null) {
             timerTask.cancel();
        }
        TextView timer = (TextView) findViewById(R.id.androidtimer);
        timer.setText("--:--");
        timerTask = null;
        n = 0;
    }