Различные способы обработки времени в Android - PullRequest
2 голосов
/ 06 февраля 2011

Мне нужен очень упрощенный способ следить за временем. По сути, мне просто нужно запустить таймер при вызове метода и через определенное время (45-90 секунд) вызвать другой метод.

Из того, что я прочитал, обработчики являются наиболее эффективным способом отслеживания времени. Тем не менее, некоторые говорят, что они требуют второго потока, в то время как другие говорят, что они этого не делают. Это, конечно, не так уж и сложно, но я бы предпочел сделать все как можно более минималистичным. Итак, есть ли способ сделать что-то вроде простой проверки, чтобы увидеть, является ли System.getCurrentTimeMillis на определенную величину выше, чем это было, когда пользователь вызвал первый метод, без какого-либо дальнейшего взаимодействия с пользователем, конечно.

Если нет, я просто буду больше читать о Handlers и работать с ними. Спасибо за вашу помощь.

Ответы [ 2 ]

0 голосов
/ 06 февраля 2011

После вызова вашего первого метода вы вызываете второй метод через 90 секунд с помощью:

    new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            //here call the second method

            }   

}, 90000);

Однако, если пользователь нажимает на return и покидает действие, этот запускаемый с задержкой запуск перезапускает действие, следовательновам нужно вставить в него оператор if, чтобы проверить, выполняется ли это действие ...

Если вам нужно отслеживать, сколько времени прошло каждую 1 секунду до окончания таймера, вы можете использовать этот код

new CountDownTimer(90000, 1000) { 

    public void onTick(long millisUntilFinished) { 
        //call to my UI thread every one second 
    } 

    public void onFinish() { 
        //final call to my UI thread after 90 seconds
    } 
 }.start();
0 голосов
/ 06 февраля 2011

Я бы использовал TimerTask и метод postDelayed. Хорошее описание смотрите здесь:

http://android -developers.blogspot.com / 2007/11 / стежок-в-time.html

...