Java Android:如何在点击按钮后将计时器增加 2 秒?



>我正在开发一个需要计时器的应用程序,但每次单击按钮时都找不到将其递增 2 秒的解决方案

//chronometer session
//private Chronometer chronometer;
//private boolean isRunning;
//private long pauseOffset;
//...
public void StartChronometer(){
if(!isRunning){
chronometer.setBase(SystemClock.elapsedRealtime() - pauseOffset);
chronometer.start();
isRunning = true;
}
}
public void PauseChronometer(){
if(isRunning){
chronometer.stop();
pauseOffset = SystemClock.elapsedRealtime() - chronometer.getBase();
isRunning = false;
}
}
public void ResetChronometer(){
chronometer.setBase(SystemClock.elapsedRealtime());
pauseOffset = 0;
}
public void IncrementByTwo(){
if(!isRunning){
chronometer.setBase(SystemClock.elapsedRealtime());
//????????????????????? NO IDEA ????????????????????????
}
}

我不知道如何增加它,我需要一个新的计时器来添加背景,当我单击一个按钮调用函数 IncrementByTwo 时,也许仅此而已? 2 个计时器,一个活的,一个在后台,每次单击按钮时都会以某种方式添加第二个(荒谬或我不知道(

您可以使用一个变量来计算按钮被单击的次数,并且由于SystemClock.elapsedRealtime()返回自应用程序启动以来的纳秒数,因此您可以添加2000000000 * <your_variable>(20000000000 纳秒 => 2 秒(来添加秒数:

private int i = 0;
// ...
public void PauseChronometer(){
if(isRunning){
chronometer.stop();
pauseOffset = (SystemClock.elapsedRealtime() + (i * 2000000000)) - chronometer.getBase();
isRunning = false;
}
}
public void ResetChronometer(){
i = 0;
chronometer.setBase(SystemClock.elapsedRealtime());
pauseOffset = 0;
}
public void IncrementByTwo(){
if(!isRunning){
i++;
chronometer.setBase(SystemClock.elapsedRealtime() + (i * 2000000000));
}
}

最新更新