如何在 android 中检查以毫秒为单位的时间

How to check times in milliseconds in android

我有一个运行良好的毫秒计时器。 按钮代码:

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");
    }
}

我需要查看时间才能开始活动。我必须检查的时间在 seconds.milliseconds(即 45.367),但是这个功能(检查)不起作用。 有什么想法吗?

'check'功能有效...但只有五分之一:可能是刷新时间太短了? 另外,代码在一个片段中:它对定时器有什么影响吗?

您是否考虑过使用此处所述的 Android Instant class? https://developer.android.com/reference/kotlin/java/time/Instant

当我从事与您相同类型的工作时,它对我帮助很大。

您需要执行此操作才能获得以毫秒为单位的时间:

   long time = System.currentTimeMillis();

您的计算时间可能超过 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();
 }