programmieren - java seconds timer



Countdown-Timer in Minuten und Sekunden (2)

Verwenden Sie einfach den Modulo-Operator % , um die verbleibenden Millisekunden zu erhalten, und teilen Sie sie durch 1000, um sie in Sekunden zu konvertieren.

blue.setText((millisUntilFinished / 60000)+":"+(millisUntilFinished % 60000 / 1000));

https://ffff65535.com

Es ist ein Countdown-Timer und ich möchte in Minuten und Sekunden drucken. ex (300000mili) 5 Minuten, und zählen 4:60, 4:59 ... hier ist ein Teil meines Codes

     final MyCounter timer = new MyCounter(300000,1000);
    blue.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View v) {
            timer.start();
        }
    });
}
public class MyCounter extends CountDownTimer{

    public MyCounter(long millisInFuture, long countDownInterval) {
        super(millisInFuture, countDownInterval);
    }

    @Override
    public void onFinish() {
        blue.setText("Live");
    }

    @Override
    public void onTick(long millisUntilFinished) {
        blue.setText((millisUntilFinished/60000)+":"+(millisUntilFinished/5000));
        // i tried this
    }
}

Und wie kann ich vibrieren, wenn 20 Sekunden fehlen? und als es fertig war? Danke und Entschuldigung für mein schlechtes Englisch


http://developer.android.com/reference/android/os/CountDownTimer.html

TextView _tv = (TextView) findViewById( R.id.textView1 );
new CountDownTimer(30000, 1000) { // adjust the milli seconds here

    public void onTick(long millisUntilFinished) {
    _tv.setText(""+String.format("%d min, %d sec", 
                    TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished),
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - 
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));
    }

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

Seit Java 1.5 gibt es die java.util.concurrent.TimeUnit Klasse

 _tv.setText(""+String.format("%d min, %d sec", 
                    TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished),
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - 
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))));

http://docs.oracle.com/javase/7/docs/api/java/util/concurrent/TimeUnit.html

Ein TimeUnit repräsentiert die Zeitdauern bei einer gegebenen Granularitätseinheit und stellt Nutzverfahren bereit, um Einheiten zu konvertieren und Zeitsteuerungs- und Verzögerungsoperationen in diesen Einheiten durchzuführen.

Für Java-Versionen unter 1.5 oder für Systeme, die die TimeUnit-Klasse nicht vollständig unterstützen, können die folgenden Gleichungen verwendet werden:

int seconds = (int) (milliseconds / 1000) % 60 ;
int minutes = (int) ((milliseconds / (1000*60)) % 60);
int hours   = (int) ((milliseconds / (1000*60*60)) % 24);

Vibrieren

 Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            // Vibrate for 500 milliseconds
            v.vibrate(500);
  <uses-permission android:name="android.permission.VIBRATE"/> // permission in manifest

Bearbeiten:

Vibrieren bei 4 min 55 Sekunden für 500 Millisekunden

 if((TimeUnit.MILLISECONDS.toMinutes( millisUntilFinished)==4) &&
                    TimeUnit.MILLISECONDS.toSeconds(millisUntilFinished) - 
                    TimeUnit.MINUTES.toSeconds(TimeUnit.MILLISECONDS.toMinutes(millisUntilFinished))==55)
            {

            Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE);
            // Vibrate for 500 milliseconds
            v.vibrate(500);
            }