CountDownTimer 循环
CountDownTimer loop
我试图让 CountDownTimer 循环启动几次,但它只启动了一次,应该至少再启动 2 次,
我试过 for 循环和 While(x !=2)
case R.id.tbWait:
if (waiting.isChecked()){
int x = 0;
do {
turnOnLights();
new CountDownTimer(2000, 1000){
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish(){
turnOffLights();
}
}.start();
x++;
} while (x !=2);
}
break;
我也试过了,但它使应用程序没有响应,必须强制关闭它:(
case R.id.tbWait:
while (waiting.isChecked()){ //Using While instead of if statemnt
turnOnLights();
new CountDownTimer(2000, 1000){
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish(){
turnOffLights();
}
}.start();
}
break;
问题是当我打开 Toggle Button tbWait 时如何循环播放?
turnOnLights() 然后等待 2 秒然后 turnOffLights() 就像车上的等待按钮一样?抱歉我的英语不好,我真的很陌生^^
我正在使用 AndroidStudio
按照 android 的方式,使用 Handler!
制作一个 Handler,一个 Runnable 来开灯,一个 Runnable 来关灯:
public class YourClass extends ProbablySomeClass{
Handler lightsHandler; //The android.os.Handler one, not the java one
Runnable lightsON = new Runnable(){
@Override
public void run(){
if(waiting.isChecked){
turnLightsOn();
lightsHandler.postDelayed(lightsOff, 2000);
}
else lightsHandler.postDelayed(lightsON, 1000);
}
}
Runnable lightsOff = new Runnable(){
@Override
public void run(){
turnLightsOff();
lightsHandler.postDelayed(lightsON, 2000);
}
}
public YourClass(SomeType someParameter){
init(someParameters); //Whatever your constructor does
lightsHandler = new Handler();
lightsHandler.post(lightsOn)
}
现在你的按钮所要做的就是un/check那个变量,当它被选中时它会每2秒自动闪烁一次。
我试图让 CountDownTimer 循环启动几次,但它只启动了一次,应该至少再启动 2 次,
我试过 for 循环和 While(x !=2)
case R.id.tbWait:
if (waiting.isChecked()){
int x = 0;
do {
turnOnLights();
new CountDownTimer(2000, 1000){
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish(){
turnOffLights();
}
}.start();
x++;
} while (x !=2);
}
break;
我也试过了,但它使应用程序没有响应,必须强制关闭它:(
case R.id.tbWait:
while (waiting.isChecked()){ //Using While instead of if statemnt
turnOnLights();
new CountDownTimer(2000, 1000){
@Override
public void onTick(long millisUntilFinished) {
}
@Override
public void onFinish(){
turnOffLights();
}
}.start();
}
break;
问题是当我打开 Toggle Button tbWait 时如何循环播放? turnOnLights() 然后等待 2 秒然后 turnOffLights() 就像车上的等待按钮一样?抱歉我的英语不好,我真的很陌生^^ 我正在使用 AndroidStudio
按照 android 的方式,使用 Handler!
制作一个 Handler,一个 Runnable 来开灯,一个 Runnable 来关灯:
public class YourClass extends ProbablySomeClass{
Handler lightsHandler; //The android.os.Handler one, not the java one
Runnable lightsON = new Runnable(){
@Override
public void run(){
if(waiting.isChecked){
turnLightsOn();
lightsHandler.postDelayed(lightsOff, 2000);
}
else lightsHandler.postDelayed(lightsON, 1000);
}
}
Runnable lightsOff = new Runnable(){
@Override
public void run(){
turnLightsOff();
lightsHandler.postDelayed(lightsON, 2000);
}
}
public YourClass(SomeType someParameter){
init(someParameters); //Whatever your constructor does
lightsHandler = new Handler();
lightsHandler.post(lightsOn)
}
现在你的按钮所要做的就是un/check那个变量,当它被选中时它会每2秒自动闪烁一次。