Делаю выделение определенного синтаксиса через ScheduledExecutorService, со следующим синтаксисом:
ScheduledExecutorService executorService = Executor.newSingleThreadScheduleExecutor();
executorService.schedule(new syntaxLight(s, editText), 2, TimeUnit.SECONDS);
где s - Editable, а editText - EditText. Все это сделано в TextWatcher, когда же наступает 2 секунда, то приложение зависает до тех пор, пока я не нажал enter или не был набран 24 символ. Странно, но это так.
Нужно дождаться выполнение всех потоков в Executor и завершить его:
public class MyRunnable implements Runnable {
private int a;
private int b;
public MyRunnable(int a, int b) {
this.a = a;
this.b = b;
}
@Override
public void run() {
System.out.println(a + b);
}
}
public class Application {
public static void main(String[] args) throws InterruptedException {
ScheduledExecutorService executorService = Executors.newSingleThreadScheduledExecutor();
executorService.schedule(new MyRunnable(3, 2), 5, TimeUnit.SECONDS);
executorService.shutdown();
executorService.awaitTermination(10, TimeUnit.SECONDS);
}
}
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости