Intereting Posts
Получить список контактов, принадлежащих определенной группе Невозможно изменить значок ящика для NavigationDrawer Как вставить Викисловарь для автономного доступа в Android-приложении? JSON: парсератор потока Джексона – это действительно стоит? Переработка просмотров в адаптере пользовательского массива: как именно он обрабатывается? Android: Как я могу разместить свое уведомление поверх области уведомлений? Как узнать, какой ресурс используется? Изменить состояние CheckBox на элементе списка? Удалять фоновые рисунки программно в Android Правильный способ форматирования даты с такими строками, как сегодня, вчера, завтра и т. Д. Android google maps добавляет собственный тег маркера Как мы наследуем классы тестов через модули библиотеки Android? Как я могу обнаружить сфокусированный EditText в android? Android: Как добавить поддержку в поле просмотра JavaScript в WebViewClient? Изменение цвета текста элемента меню в навигационном ящике

Что делает postInvalidate ()?

Какая функция postInvalidate() используется в Android? Я видел эту функцию во многих местах. Когда я вступал в Googled, я так много выработал:

PostInvalidate– отправить запрос недействительности в пользовательский интерфейс

Я не знаю, что означает фраза «invalidate request». Может кто-нибудь объяснить подробно, что здесь происходит?

Solutions Collecting From Web of "Что делает postInvalidate ()?"

Каждый класс, полученный из класса View, имеет invalidate и метод postInvalidate . При вызове invalidate он сообщает системе, что текущее представление изменилось, и оно должно быть перерисовано как можно скорее. Поскольку этот метод может быть вызван только из вашего UIThread, нужен другой метод, если вы не находитесь в UIThread и все еще хотите уведомить систему о том, что ваш View был изменен. Метод postInvalidate уведомляет систему из не-UIThread, и View как можно скорее перерисовывается в следующем eventloop на UIThread. Он также кратко поясняется в документации SDK.

Просто сравните invalidate и postInvalidate .

С помощью этого метода ( postInvalidate() ) вы можете аннулировать представление из потоков, отличных от UI. Чтобы аннулировать метод View from UI-thread, используйте метод invalidate() .

View.onDraw(Canvas) означает, что метод View.onDraw(Canvas) мы в какой-то момент в будущем (а не сразу) вызываем, чтобы перерисовать весь View (если View виден).

Android перерисовывает View s автоматически, но иногда необходимо сказать: «Эй, этот View был изменен, перерисовывайте его как можно быстрее».

Больше на:

http://developer.android.com/guide/topics/ui/how-android-draws.html

http://developer.android.com/reference/android/view/View.html#invalidate%28%29

Простыми словами метод invalidate() можно вызывать из postInvalidate() пользовательского интерфейса, а postInvalidate() можно вызывать из postInvalidate() от UI, чтобы сообщить андроиду обновить наш пользовательский вид после внесения в него каких-либо изменений.