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();
Since java 1.5 is the java.util.concurrent.TimeUnit class
_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
TimeUnit represents the length of time in a given drilldown unit and provides utility methods for converting between units and for performing synchronization and delay operations in these units.
For Java versions below 1.5 or for systems that do not fully support the TimeUnit class, the following equations can be used:
int seconds = (int) (milliseconds / 1000) % 60 ; int minutes = (int) ((milliseconds / (1000*60)) % 60); int hours = (int) ((milliseconds / (1000*60*60)) % 24);
To vibrate
Vibrator v = (Vibrator) getSystemService(Context.VIBRATOR_SERVICE); // Vibrate for 500 milliseconds v.vibrate(500); <uses-permission android:name="android.permission.VIBRATE"/> // permission in manifest
Edit:
Vibrate after 4 minutes 55 seconds for 500 milliseconds
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); }
source share