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