Заставить цикл подождать 5 минут перед повторным выполнением - PullRequest
2 голосов
/ 18 марта 2011

Итак, я пишу приложение для Android и хочу иметь функцию, которая проверяет, запрашивает ли данные о местоположении каждую минуту или около того (пока не решила, как часто).Я знаю, что могу просто создать поток и отправить его в спящий режим, но мне не очень нравится этот параметр, так как мне пришлось бы создать поток для этой одной функции, а затем заблокировать его, чтобы он не мог использоваться ничем, кромеодна нить.Другой вариант, о котором я подумал, это просто иметь бесконечный цикл, который проверял, прошло ли время, но это поднимает еще более серьезные проблемы.

Так что мой вопрос, есть ли лучший способ сделатьцикл ждать заданный период времени, прежде чем выполнить снова?

Ответы [ 3 ]

6 голосов
/ 18 марта 2011

Использование обработчик :

final Handler handler = new Handler();
final long delay = 5 * 60 * 1000;

void executeSomething(){
    handler.postDelayed(new Runnable(){
        public void run(){
            // do your work

            if (continueToExecute){
                executeSoemthing();
            }
        }
    }, delay);
}
3 голосов
/ 18 марта 2011

Ответить на ваш вопрос не совсем.Тем не менее, платформа Android предназначена для поддержки такого рода вещей.Небольшое исследование служб Страница API Android и Таймеры Страница API Android .

2 голосов
/ 18 марта 2011

Вы можете использовать postDelayed(Runnable,long) для этого.

...