62 votes

Que fait postInvalidate() ?

Quelle est l'utilité de la postInvalidate() dans Android ? J'ai vu cette fonction dans beaucoup d'endroits. Quand j'ai cherché sur Google, j'ai trouvé ceci :

postInvalidate-- envoyer une demande d'invalidation sur le thread UI

Je ne sais pas ce que signifie l'expression "invalider la demande". Quelqu'un peut-il m'expliquer en détail ce qui se passe ici ?

126voto

MarioB. Points 1221

Chaque classe qui est dérivée de la classe View possède l'attribut invalider y el post-invalidation méthode. Si la méthode invalidate est appelée, elle indique au système que la vue actuelle a changé et qu'elle doit être redessinée dès que possible. Comme cette méthode ne peut être appelée qu'à partir de votre UIThread, une autre méthode est nécessaire lorsque vous n'êtes pas dans l'UIThread et que vous voulez quand même informer le système que votre vue a été modifiée. La méthode postInvalidate notifie le système à partir d'un non-UIThread et la vue est redessinée dans le prochain eventloop de l'UIThread dès que possible. Il est également brièvement expliqué dans la documentation du SDK.

Il suffit de comparer invalider y post-invalidation .

21voto

branoholy Points 503

Par cette méthode ( postInvalidate() ), vous pouvez invalider un View à partir de threads non-UI. Pour invalider un View de l'utilisation de l'UI-thread invalidate() método.

L'invalidation signifie que le View.onDraw(Canvas) sera appelée à un moment donné dans le futur (pas immédiatement) pour redessiner l'ensemble de l'image. View (si le View est visible).

Android redessine View automatiquement, mais il est parfois nécessaire de dire : "Hey, cette View a été modifié, redessinez-le aussi vite que possible."

Plus à :

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X