gpt4 book ai didi

java - 如何在android中检查时间(以毫秒为单位)

转载 作者:行者123 更新时间:2023-12-02 00:59:03 25 4
gpt4 key购买 nike

我有一个工作正常的毫秒计时器。按钮代码:

btnStart.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View view){
startTime = SystemClock.uptimeMillis();

customHandler.postDelayed(updateTimerThread,0);
txtCheck.setText("");
}
});

可运行:

 Runnable updateTimerThread = new Runnable() {
@Override
public void run() {
timeMilliSeconds = SystemClock.uptimeMillis()-startTime;
updateTime = timeSwapBuff+timeMilliSeconds;
secs = (int)(updateTime/1000);
mins = (int)(secs/60);
secs %=60;
milliseconds = (int)(updateTime%1000);
txtChrono.setText(""+mins+":"+String.format("%2d",secs)+":"
+String.format("%3d",milliseconds));
customHandler.postDelayed(this,0);
check(secs, milliseconds)
}
};

检查时间是否匹配的函数:

 public void check(Integer secs, long milli){
if (secs.equals(45) && milli.equals(367)){
txtCheck.setText("done");
}
}

我需要检查时间才能开始 Activity 。我必须检查的时间以秒.毫秒为单位(即45.367),但此功能(检查)不起作用。有什么想法吗?

“检查”功能有效...但只有五分之一:也许刷新时间太短?另外,代码在一个 fragment 中:它对定时器有什么影响吗?

最佳答案

您的计算时间可能会超过 1 毫秒。你不应该经常检查。它既昂贵又不安全。为什么不使用 CountdownTimer ?它完成了这项工作,并且是基于毫秒的。

 private long[] checkTimes = new long[]{ 45367L,90446L,25384L}; 
for (int i = 0; i < checkTimes.length; i++) {
new CountDownTimer(checkTimes[i], 1000) {

public void onTick(long millisUntilFinished) {
txtCheck.setText("seconds remaining: " + millisUntilFinished / 1000);
}

public void onFinish() {
txtCheck.setText("done");
}
}.start();
}

关于java - 如何在android中检查时间(以毫秒为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60938169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com