действия нужно какие-то запарные штуки делать? почему это просто из коробки как надо не работает?
Ранлуп — это механизм, позволяющий запущенному потоку прогонять входящие события по обработчикам событий в нужный момент времени, гоняя по кругу (циклу) нужный поток. Его писали достаточно умные инженеры, а саму концепцию придумали ещё более умные люди. И пока лучше ничего не придумали для динамических задач в событийно-ориентированной парадигме. А надо понимать, что проектирование приложений в принципе завязано на этой парадигме. Это фундаментальные основы, которые уходят корнями в теорию о проектировании ИС. Например, мы можем написать обработчик, который будет отслеживать положение экрана, будь оно горизонтальным или вертикальным. Для того, чтобы наш обработчик срабатывал, необходимо запустить такой обработчик в потоке. В случае интерфейсов — это главный поток. Но и этого будет мало, потому что прогнав обработчик в потоке при запуске потока в определенный и нужный момент времени, он будет активен, пока жив поток, а поток будет жив, пока в нем есть неисполненные задачи. Как только задачи будут исполнены, память выделенная для такого потока, будет деинициализирвоана, а с ней, уберется «ненужный обработчик», то есть, он больше не сработает, что у тебя в коде и происходит. Для того, чтобы поток прогонялся не один раз, а по кругу, то есть в рамках механики ранлупа, нужно запустить поток (в котором стоит обработчик) в ранлупе. Копай API ранлупа. И будет ответ.
Обсуждают сегодня