当重启CountDownTimer时,它完成了工作

时间:2014-07-16 08:22:28

标签: java android countdowntimer

我想停止CountDownTimer并重新启动它,停止时间。我在CountDownTimer类中有这个代码

public class MyDownTimer extends CountDownTimer{

long mills;
public MyDownTimer(long millisInFuture, long countDownInterval) {
    super(millisInFuture, countDownInterval);

    this.mills=millisInFuture;
}

@Override
public void onFinish() {

    GameScreen.showWindow("Time is over","Sorry, time is Over, you lose");
}

@Override
public void onTick(long millisUntilFinished) {

    mills=millisUntilFinished/1000;
    GameManager.time= millisUntilFinished/1000;
}       
}

和Dialog类,他必须在用户点击按钮'暂停'时显示。 对话框代码,如您所见,我在此代码中启动了新的CountDownTimer

 public static void showWindowPause(final MyDownTimer dTime){

    final Dialog wdialog= new Dialog(context);
    wdialog.setContentView(R.layout.dialog_window);
    wdialog.setTitle("title");
    TextView text=(TextView)wdialog.findViewById(R.id.txtFirstWord);
    text.setText("mainText");
    Button dialogButton=(Button)wdialog.findViewById(R.id.button1);
    dialogButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {

            wdialog.dismiss();              
            dTime.start();


        }
    });
    wdialog.show();

}

和方法,我停止CountDownTimer并显示Dialog窗口。

long stime =dTime.mills;
dTime.cancel();
dTime=null;
dTime= new MyDownTimer(stime,1000);
GameScreen.showWindowPause(dTime);

当我在对话框窗口中单击按钮时,我看到新的Dialog,它在方法

中创建
MyDownTimer.onFinish()

但如果我换行

long stime =dTime.mills;

long stime =5000;

CountDownTimer重启,一切正常。 哪里弄错了?

1 个答案:

答案 0 :(得分:0)

你的问题确实令人困惑,但我认为我找到了一些没有用的东西。

public void onTick(long millisUntilFinished) {
    mills=millisUntilFinished/1000;     
    GameManager.time= millisUntilFinished/1000;
} 

我认为应该是

mills=millisUntilFinished - 1000;

编辑:如果您实际上将毫秒转换为秒,那么您需要做

long stime =dTime.mills*1000;