postInvalidate()
Androidでの機能の使い方は何ですか?私はこの機能を多くの場所で見ています。私がグーグルで検索したとき、私はこれだけ出てきました:
postInvalidate --UIスレッドに無効化リクエストを投稿します
そこにある「リクエストを無効にする」というフレーズが何を意味するのかわかりません。誰かがここで何が起こっているのか詳細に説明できますか?
postInvalidate()
Androidでの機能の使い方は何ですか?私はこの機能を多くの場所で見ています。私がグーグルで検索したとき、私はこれだけ出てきました:
postInvalidate --UIスレッドに無効化リクエストを投稿します
そこにある「リクエストを無効にする」というフレーズが何を意味するのかわかりません。誰かがここで何が起こっているのか詳細に説明できますか?
View クラスから派生した各クラスには、invalidateメソッドとpostInvalidateメソッドがあります。invalidate が呼び出されると、現在のビューが変更され、できるだけ早く再描画する必要があることをシステムに伝えます。このメソッドは UIThread からのみ呼び出すことができるため、UIThread にいない場合でも View が変更されたことをシステムに通知したい場合には、別のメソッドが必要です。postInvalidate メソッドは非 UIThread からシステムに通知し、View は UIThread の次のイベントループでできるだけ早く再描画されます。SDK ドキュメントでも簡単に説明されています。
invalidateとpostInvalidateを比較するだけです。
このメソッド ( ) により、非 UI スレッドからpostInvalidate()
を無効化できます。from UI-thread useメソッドView
を無効にします。View
invalidate()
無効化とは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()
メソッドを UI スレッドからpostInvalidate()
呼び出したり、非 UI スレッドから呼び出したりして、何らかの変更が加えられた後にカスタム ビューを更新するように Android に指示することができます。