2015-01-01 3 views
0

Мне интересно, почему метод post() является специфичным для представления, а не только статическим методом. Похоже, что аргумент Runnable тесно связан с определенным видом.Почему метод post() в Android привязан к определенному представлению?

Я нашел этот другой вопрос, который объясняет, что (начиная с 4 лет назад) runnable будет запущен после того, как будет нарисован вид, но это не совсем отвечает на мой вопрос. What event is fired after all views are fully drawn?

ответ

0

Потому что он решает, какой обработчик должен разместить событие, основываясь на нескольких разных критериях. Проверьте код в AOSP. Если вид прикреплен к окну, он использует тот, который содержится в информации о прикреплении. Если нет, он использует ViewRoot.getRunQueue и размещает его там. Таким образом, есть возможность его публикации для разных обработчиков, если, например, у вас был вид в другом окне, например, Toast, на который вы звонили. Таким образом, требуется нестатическая функция.

+0

«решает, какой обработчик отправляет событие в», - но обработчики в конечном итоге вызываются в главном потоке ui/main в глобальной очереди выполнения? –

Смежные вопросы