Страницы

Поиск по вопросам

воскресенье, 29 декабря 2019 г.

Java выполнение действий раз в минуту и бесконечно долго

#java


Подскажите как выполнять определенные действия после запуска приложения и бесконечно
долго раз в минуту? 
    


Ответы

Ответ 1



Thread run = new Thread(new Runnable() { @Override public void run() { while(true){ try { //ДЕЛАЕМ Thread.sleep(1000); //1000 - 1 сек } catch (InterruptedException ex) { } } } }); run.start(); // заводим Вот код, п.с Timer это практически тоже самое что и я написал(только оперативку кушае поменьше, объектов на 1 меньше) и вы можете с этим кодом делать что угодно, добавить final boolean(заменить им true) и остановить thread когда вам нужно, а при остановке что-то потворить.

Ответ 2



java.util.Timer: Для использования таймера задача должна быть унаследована от TimerTask MyTimerTask extends TimerTask { public void run() { //Этот метод будет выполняться с нужным нам периодом } } Timer timer = new Timer(); timer.schedule(new MyTimerTask(), 60 * 1000); // Время указывается в миллисекундах java.util.concurrent.ScheduledExecutorService Для этого примера задача должна реализовывать интерфейс Runnable. MyTimerTask implenents Runnable { public void run() { //Этот метод будет выполняться с нужным нам периодом } } ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(); scheduler.scheduleAtFixedRate(new MyTimerTask(), 0, 1, TimeUnit.MINUTES); Вообще сигнатура метода следующая: scheduler.scheduleAtFixedRate(command, initialDelay, period, unit); command - Экземпляр класса, реализующего интерфейс java.lang.Runnable initialDelay - задержка перед первым запуском period - периодичность unit - Единица измерения времени. java.util.concurrent.TimeUnit (например: TimeUnit.MINUTES)

Ответ 3



Используй многопоточность. Создай метод котором при вызове создает поток и в его теле будет вот такой while. while(true){ //doSomething Thread.sleep(60000); } Пример: http://www.fandroid.info/klass-thread-i-interfejs-runnable-zhiznennyj-tsikl-potoka-java/ UPDATE: Если вам надо как то его остновить можно просто создать флаг(boolean flag), на место true для остоновки цилка. Да и запустить его можно когда тебе угодлно, лишь бы дать волю фантазии

Комментариев нет:

Отправить комментарий