Всюду по сети и по переполнению стека есть ссылки на поток пользовательского интерфейса Очередь событий. Например, runOnUiThread() отправит действие в очередь событий потока пользовательского интерфейса. Но я не смог найти подробное описание этой очереди, так может кто-то, пожалуйста, назовите меня подробным или ответьте на несколько вопросов?
1. Я получаю, что это очередь, и что она содержит "действия", но я немного не понимаю, что такое "действие". Являются ли вызовы методов действий связанными с ними параметрами или инструкциями для самого потока или что?
2. У всех потоков есть очереди событий или только поток пользовательского интерфейса?
3. Как я могу узнать, что в очереди событий, или получить количество событий?
4. Что именно определяет, когда выполняется действие в очереди?
5. Класс View имеет метод cancelPendingInputEvents(), который используется для "Отмена любых отложенных событий ввода на высоком уровне, которые ранее были отправлены в очередь событий". Если очередь событий является свойством потока, почему это метод класса View или представления имеют некоторую другую очередь событий?
6. Являются ли очереди сообщений и очереди событий двумя разными очередями? NB - кто-то спросил об этом на SO здесь, и ответчик начал с того, что они были синонимами, а затем добавили добавление которые, казалось, предполагали, что сообщения были разными, поэтому я не знаю, каков был окончательный ответ.