7

Как сделать таймер в android-приложении? Просто использовать java.util.Timer?

3 ответа 3

10

Есть в ОС вот что — CountDownTimer А вообще вот Вам примерчик:

Timer timer = new Timer();
timer.schedule(new UpdateTimeTask(), 0, 1000); //тикаем каждую секунду без задержки 
//задача для таймера
class UpdateTimeTask extends TimerTask {
    public void run() {
        ...
    } 
}

На самом деле, попробуйте сперва CountDownTimer. А, вспомнил. Вот вам еще дока.

Только таймер работает один раз (тот что java.util.Timer), такая у него особенность, и нужно перехватывать IllegalStateException.

7

Можно с помощью CountDownTimer.

public class MyTimer extends CountDownTimer
{

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

    @Override
    public void onFinish() 
    {
        // Do something...
    }

    public void onTick(long millisUntilFinished) 
    {

    }

}
1

Если нужен простой таймер, можно использовать Chronometer.

Например, в layout помещаем chronometer:

<Chronometer
android:id="@+id/chronometer"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

В Activity инициализируем Chronometer, получаем время с момента старта приложения и устанавливаем его в качестве базового для нашего Cronometer:

Chronometer chronometer = (Chronometer) findViewById(R.id.chronometer);
long startTime = SystemClock.elapsedRealtime();
chronometer.setBase(startTime);

Получаем на экране обычный тикающий таймер.

Формат вывода времени можно поменять в setFormat(String format)

Ваш ответ

By clicking “Отправить ответ”, you agree to our terms of service and acknowledge you have read our privacy policy.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками или задайте свой вопрос.