当按下按钮时,如何在Java中销毁Downtimer?
我做了一个计时器,计时时间为5秒,然后当我按下退出按钮时,计数器自动停止 这是我的计时器代码:当按下按钮时,如何在Java中销毁Downtimer?,java,android,countdowntimer,Java,Android,Countdowntimer,我做了一个计时器,计时时间为5秒,然后当我按下退出按钮时,计数器自动停止 这是我的计时器代码: public void startTimer(final long finish, long tick) { CountDownTimer t; t = new CountDownTimer(finish, tick) { public void onTick(long millisUntilFinished) {
public void startTimer(final long finish, long tick) {
CountDownTimer t;
t = new CountDownTimer(finish, tick) {
public void onTick(long millisUntilFinished) {
long remainedSecs = millisUntilFinished / 1000;
textTimer.setText("" + (remainedSecs / 60) + ":" + (remainedSecs % 60));// manage it accordign to you
}
public void onFinish() {
textTimer.setText("00:00");
Toast.makeText(FloatingVideoWidgetShowService.this, "Waktu Habis", Toast.LENGTH_SHORT).show();
long seek = videoView.getCurrentPosition();
videoView.setKeepScreenOn(false);
stopSelf();
WritableMap args = new Arguments().createMap();
args.putInt("index", index);
args.putInt("seek", (int) seek);
args.putString("url", playingVideo.getString("url"));
args.putString("type", "close");
sendEvent(reactContext, "onClose", args);
onDestroy();
cancel();
}
}.start();
}
这是我按下停止/退出按钮时的代码:
floatingWindow.findViewById(R.id.btn_deny).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
long seek = videoView.getCurrentPosition();
videoView.setKeepScreenOn(false);
stopSelf();
WritableMap args = new Arguments().createMap();
args.putInt("index", index);
args.putInt("seek", (int) seek);
args.putString("url", playingVideo.getString("url"));
args.putString("type", "close");
sendEvent(reactContext, "onClose", args);
onDestroy();
}
});
当点击btn_deny时,定时器停止,且不强制关闭,情况如何
谢谢。您不能使用
onDestroy()
关闭活动或片段。相反,您需要调用finish()
要关闭倒计时
,需要将其设置为类作用域变量。在startTimer
上准备计时器,然后通过调用t.cancel()
停止计时器,如以下代码所示:
public class YourActivity extends Activity {
// Declare the variable to be accessed later.
CountDownTimer t;
...
public void startTimer(final long finish, long tick) {
t = new CountDownTimer(finish, tick) {
...
}.start();
}
private void yourOtherMethod() {
floatingWindow.findViewById(R.id.btn_deny).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(t != null) t.cancel();
...
}
});
}
}
您不能使用
onDestroy()
关闭活动或片段。相反,您需要调用finish()
要关闭倒计时
,需要将其设置为类作用域变量。在startTimer
上准备计时器,然后通过调用t.cancel()
停止计时器,如以下代码所示:
public class YourActivity extends Activity {
// Declare the variable to be accessed later.
CountDownTimer t;
...
public void startTimer(final long finish, long tick) {
t = new CountDownTimer(finish, tick) {
...
}.start();
}
private void yourOtherMethod() {
floatingWindow.findViewById(R.id.btn_deny).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
if(t != null) t.cancel();
...
}
});
}
}
尝试
倒计时。取消()代码>。您需要在函数外部声明countDownTimer才能执行此操作。请尝试countDownTimer.cancel()代码>。要执行此操作,您需要在函数外部声明countDownTimer。