gpt4 book ai didi

android - 多个倒数计时器依次运行

转载 作者:行者123 更新时间:2023-12-05 06:45:46 27 4
gpt4 key购买 nike

这是我的第一个问题。我需要在我的应用程序中实现六个 countdown timers 一个接一个地运行。第一个完成时,下一个开始,依此类推。每次运行的 Init time 取决于用户输入。问题是我需要在 onTick()onFinish() 方法中为每个正在运行的 countdown timer 放置不同的代码,嗯,我不确定如何在完成后启动下一个 counter。我正在考虑在当前的 onFinish() 方法中调用下一个 counter 但我无法弄清楚如何使用 6 个 counters .

这是我的倒计时计时器类:

public class Counter extends CountDownTimer
{

public Counter(long millisInFuture, long countDownInterval)
{
super(millisInFuture, countDownInterval);
}

public void onTick(long millisUntilFinished)
{
//this code is the same for every counter
timer_view.setText(formatTime(millisUntilFinished));

//this code depends on specific counter running
output_view1.setText("My output here");
output_view2.setText("My output here");
output_view3.setText("My output here");

}

public void onFinish()
{
playSound(sound_id_1);
runMyMethod(user_input_1);

timerHasStarted = false;


}

}

我在同一个 Activity 中开始我的计数器:

if(!timerHasStarted)
{
counter = new Counter(user_input1, 1000);
counter.start();
}

最佳答案

您可能需要分解开始计时器功能并在 onFinish() 中调用它。

    public void startTimer(int counterId){
Counter counter = null;
switch(counterId){
case 0:
counter = new CounterOne(counterId,user_input1,1000);
break;
/* Counter 1-5 goes here*/
default:
break;
}
if(counter !=null ){
counter.start();
}
}

然后在 onFinsh() 中启动你的下一个计时器

    public abstract class Counter extends CountDownTimer
{
private int counterId;

public Counter(int counterId /*counter id start with 0*/,long millisInFuture, long countDownInterval)
{
super(millisInFuture, countDownInterval);
this.counterId = counterId;
}

public abstract void onTick(long millisUntilFinished);

public void onFinish()
{
playSound(sound_id_1);
runMyMethod(user_input_1);
startTimer(this.counterId++);
}

}

public class CounterOne extends Counter{
public void onTick(long millisUntilFinished)
{
//counter 1 logic
}
}

/* Subclass others. eg. CounterTwo etc. */

关于android - 多个倒数计时器依次运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21555209/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com