Cómo comprobar los tiempos en milisegundos en Android

Quin:

Tengo un cronómetro milisegundos que funciona bien. código del botón:

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

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

ejecutable:

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

Función para comprobar si coincide con el tiempo:

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

Tengo que comprobar el tiempo con el fin de iniciar un evento. Las veces que tiene que comprobar son en seconds.milliseconds (es decir, 45.367), pero esta función (cheque) no funciona. ¿Alguna idea?

Los 'marcar' La función es eficaz ... pero sólo 1 de cada cinco veces: tal vez el tiempo de restauración es demasiado bajo? Además, el código está en un fragmento: ¿tiene alguna influencia en el temporizador?

nulldroid:

Es probable que sus cálculos tardan más de 1 milisegundo. No debe marcar tan a menudo. Es caro y no es seguro. ¿Por qué no utilizar un countDownTimer ? Se hace el trabajo y que se basa en milisegundos.

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

Supongo que te gusta

Origin http://10.200.1.11:23101/article/api/json?id=378867&siteId=1
Recomendado
Clasificación