如何在我的方法之外取消我的CountDownTimer?

时间:2016-07-25 21:09:55

标签: java android nullpointerexception countdowntimer

让我们假设我在下面有一个类似的课程。首先,我在公共范围内有一个CountDownTimer,但它现在为空,我有一个startCountDownTimer方法来启动我的CountDownTimer,在startCountDownTimer方法中设置我的{{1}但之后我想在用户单击后退按钮时取消countdowntimer,但是你知道我在公共范围内创建了我的变量而且它是null,所以当我试图取消countdowntimer之外的时候方法我得到NullPointerException,那么如何取消CountDownTimer? (我不想在公共范围内创建我的所有CountDownTimer。)

CountDownTimer

1 个答案:

答案 0 :(得分:0)

尝试使用布尔值解决此问题。

尝试调用countdowntimer.cancel()并且countdowntimer未初始化时,您收到NullPointerException。因此,除非初始化countdowntimer,否则不要执行该行代码。

countdowntimer声明后声明一个全局布尔值。

Boolean timerOn = false;

现在,在startCountdownTimer()方法内,在启动计时器后,将timerOn布尔值设置为true

onBackPressed()方法中,用以下代码替换代码:

@Override
public void onBackPressed() {
    super.onBackPressed();
    if (timerOn) {
       countdowntimer.cancel();
       timerOn = false;
    }
}

这将确保仅在timerOn布尔值为true时才执行.cancel方法,这只会在初始化计时器时执行。