【发布时间】:2020-04-25 13:38:51
【问题描述】:
所以我有一个开始按钮 1,当它被单击时,它会从 EditText1 中获取文本,然后调用 CountDownTimer 来调用一个方法,该方法通过其参数从 EditText1 传递文本并每 10 秒在 TextView1 中显示一些内容。但是,如果您决定在 EditText1 中键入其他内容并再次单击开始按钮 1,它将再次调用 CountDownTimer。
在这种情况下,将有 2 个“doThis”CountDownTimer 变量,执行 doThis.cancel() 只会取消第二个“doThis”CountDownTimer 变量。我想知道如何解决这个问题。
[编辑文本1]
[开始按钮 1] [TextView1] [结束按钮 1]
[开始按钮 2] [TextView2] [结束按钮 2]
CountDownTimer doThis;
doThis = new CountDownTimer(10000,10000)
{
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish() {
start();
TextView text = (TextView)findViewById(R.id.text);
try {
Date date = new Date(System.currentTimeMillis());
text.setText(myMethod(variableFromEditText1));
} catch (InterruptedException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
【问题讨论】:
-
将 countDownTimer 保存在变量中,然后在 EndButton 上单击调用 countDownTimer.stop ? :) 如果你愿意,也可以重置。
-
cancel ?
-
@ScaryWombat 但是你如何让它知道要取消哪一个?可能同时运行不止一个。
-
将
new CountDownTimer分配给一个变量 -
@MadaManu 如何将 countDownTimer 保存在变量中?类似 countDownTimer theVariable = new countDownTimer?
标签: java android android-studio button countdowntimer