Intereting Posts

Android: В чем разница между Activity.runOnUiThread и View.post?

В чем разница между Activity.runOnUiThread и View.post , может кто-нибудь объяснить, пожалуйста?

Solutions Collecting From Web of "Android: В чем разница между Activity.runOnUiThread и View.post?"

Нет никакой реальной разницы, за исключением того, что View.post полезен, если у вас нет прямого доступа к этой активности.

В обоих случаях, если не в потоке пользовательского интерфейса, Handler#post(Runnable) будет вызываться за кулисами.

Как упоминалось в комментарии CommonsWare, существует разница между двумя – когда вызывается в потоке Ui, Activity#runOnUiThread будет вызывать метод run напрямую, тогда как View#post будет публиковать runnable в очереди (например, вызывать сообщение Handler#post )

Важным моментом ИМО является то, что обе имеют одну и ту же цель, и для тех, кто ее использует, не должно быть разницы (и реализация может измениться в будущем).

Еще одна разница между Activity.runOnUiThread и view.post () заключается в том, что runnable в view.post () вызывается после того, как представление прикреплено к окну.

Либо приемлемы для большинства ситуаций, и по большей части они взаимозаменяемы, но они немного отличаются. Конечно, большая разница состоит в том, что один из них доступен из Activity а другой – из View . Между ними много совпадений, но иногда в Управлении у вас нет доступа к представлению, а иногда и в представлении у вас не будет доступа к Activity .

Один из краевых случаев, с View.post я столкнулся с View.post я упомянул в ответе на другой вопрос SO на View.post : View.post работает только из другого потока, когда View прикреплен к окну. Это редко бывает проблемой, но иногда это может привести к тому, что Runnable никогда не будет выполняться, особенно если вы вызываете View.post в методе onCreate своей Activity . Альтернативой является использование Handler.post который является тем, что Activity.runOnUiThread и View.post используют под обложками в любом случае.

(Отредактирован для точности, добавлен «из другого потока»)