如何在Android中运行两个倒计时,同时暂停和恢复其他计时器
我希望当我按下cdtimer 1的按钮时,它会继续,而其他暂停会继续,反之亦然。我试着用下面的代码来做。但另一个计时器也与正在运行的计时器并行运行。请帮助我暂停和恢复计时器,一次只运行计时器,另一次暂停如何在Android中运行两个倒计时,同时暂停和恢复其他计时器,android,countdowntimer,buttonclick,Android,Countdowntimer,Buttonclick,我希望当我按下cdtimer 1的按钮时,它会继续,而其他暂停会继续,反之亦然。我试着用下面的代码来做。但另一个计时器也与正在运行的计时器并行运行。请帮助我暂停和恢复计时器,一次只运行计时器,另一次暂停 public void p1Start(View a) { if(flag==0) { p2.setTextColor(Color.parseColor("#ffffff")); p2.setBackgroundColor(Color.parseColor
public void p1Start(View a)
{
if(flag==0) {
p2.setTextColor(Color.parseColor("#ffffff"));
p2.setBackgroundColor(Color.parseColor("#00bcd4"));
p1.setTextColor(Color.parseColor("#3f51b5"));
p1.setBackgroundColor(Color.parseColor("#303F9F"));
reverseTimer(300-1, p2);
cd2.start();
cd1.cancel();
flag=1;
}
}
public void p2Start(View b)
{
if(flag==1) {
p1.setTextColor(Color.parseColor("#ffffff"));
p1.setBackgroundColor(Color.parseColor("#00bcd4"));
p2.setTextColor(Color.parseColor("#3f51b5"));
p2.setBackgroundColor(Color.parseColor("#303F9F"));
reverseTimer(300-1, p1);
cd1.start();
cd2.cancel();
flag=0;
}
}
public void reverseTimer(long Seconds, final TextView tv){
cd1 = new CountDownTimer(Seconds* 1000+1000, 1000) {
public void onTick(long millisUntilFinished) {
s1=millisUntilFinished/1000;
int seconds = (int) (millisUntilFinished / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
tv.setText("" + String.format("%02d", minutes)
+ ":" + String.format("%02d", seconds));
}
public void onFinish() {
tv.setText("Completed");
}
};
cd2 = new CountDownTimer(Seconds* 1000+1000, 1000) {
public void onTick(long millisUntilFinished) {
s2=millisUntilFinished/1000;
int seconds = (int) (millisUntilFinished / 1000);
int minutes = seconds / 60;
seconds = seconds % 60;
tv.setText("" + String.format("%02d", minutes)
+ ":" + String.format("%02d", seconds));
}
public void onFinish() {
tv.setText("Completed");
}
};
}
而不是使用线程。通过使用处理程序将消息发布到主线程以在您希望的时间更新ui来实现这一点。对于暂停和恢复,请查看此链接ans-您基本上应该使用一个处理程序,一旦您希望它像@keyur9779所给出的那样停止,它将删除runnable