Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当重新启动倒计时时,它完成工作_Java_Android_Countdowntimer - Fatal编程技术网

Java 当重新启动倒计时时,它完成工作

Java 当重新启动倒计时时,它完成工作,java,android,countdowntimer,Java,Android,Countdowntimer,我想停止倒计时并重新启动它,直到它停止。我有这个代码在课堂倒计时 public class MyDownTimer extends CountDownTimer{ long mills; public MyDownTimer(long millisInFuture, long countDownInterval) { super(millisInFuture, countDownInterval); this.mills=millisInFuture; } @Overrid

我想停止倒计时并重新启动它,直到它停止。我有这个代码在课堂倒计时

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;
}       
}
和对话框类,他必须显示,当用户点击按钮'暂停'。 对话框代码,如您所见,我在这段代码中启动了新的倒计时

 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();

}
和方法,其中我停止倒计时并显示对话框窗口

long stime =dTime.mills;
dTime.cancel();
dTime=null;
dTime= new MyDownTimer(stime,1000);
GameScreen.showWindowPause(dTime);
当我单击对话框窗口中的按钮时,我会看到在方法中创建的新对话框

MyDownTimer.onFinish()
但如果我换线

long stime =dTime.mills;

倒计时重新启动,一切正常。
我哪里出错了?

你的问题真让人困惑,但我想我发现了一些没有意义的东西

public void onTick(long millisUntilFinished) {
    mills=millisUntilFinished/1000;     
    GameManager.time= millisUntilFinished/1000;
} 
我想应该是这样

mills=millisUntilFinished - 1000;
编辑:如果你真的要把millseconds转换成秒,那么你需要这样做

long stime =dTime.mills*1000;

我想在计时器和显示对话框中暂停。我像这样创建断点
longsime=dTime.mills并创建新的MyDownTimer,当关闭窗口对话框时,显示在
onFinish()
中创建的新对话框窗口-好的。不,我把毫秒转换成毫秒。并将其设置为-
millisuntiltfinished/1000。
编辑了我的答案,如果您在我看不见的地方实际使用dTime.mills,那么当您将dTime.mills指定给“stime”时,您需要将其乘以1000
long stime =dTime.mills*1000;