2014-01-04 2 views
0

Таймер отлично работает для того, чтобы начать с повторного представления и оставить представление, но если я запустил время, оставьте представление и верните его и просто нажмите «Сбросить приложение». Я знаю, что большинство людей не пострадали бы от сброса, когда таймер не был запущен, но для проверки идиотов мне нужно исправить это для каких-либо предложений?Почему мое приложение падает после удара Сброс

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; 
    } 
+2

Logcat please ... – Kristopher

+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; 
    } 
+0

Да, это было решение. Спасибо! – hodji

+0

Я рад, что смог помочь. – Endzeit

Смежные вопросы