android - View.post()
阿神
阿神 2017-04-17 15:32:23
0
5
881

View.post()这个方法一般用来做什么?

阿神
阿神

闭关修行中......

全員に返信(5)
Peter_Zhu

私が最も深く経験した効果は 2 つあります:
1. onCreate() メソッドで view.getHeight() を呼び出すと 0 が返されることは誰もが知っていますが、

リーリー

で身長を取得します。
2. View.postDelayed() メソッドを使用して、一定期間内にビューを複数回クリックすることによって複数の不要なクリック イベントがトリガーされるのを防ぎます。 リーリー

いいねを押す +0
小葫芦

投稿には Runnable が含まれています。これは、Runnable の作業が UI スレッドで実行され、UI を Runnable で直接更新できることを意味します。ただし、ここでの Runnable は新しいスレッドではないことに注意してください。ブロッキングによる ANR の発生を避けるために、あまりにも複雑で時間のかかる作業を実行しないでください。

いいねを押す +0
刘奇

View にはデフォルトで Handler があり、mainLooper に属する View.post はこの Handler.post

に相当します。
いいねを押す +0
Ty80

Android APP は起動後にメインスレッドである UIThread を自動的に開始します。このスレッドは主にユーザー操作イベントやインターフェース描画イベントの配信に使用されます。したがって、より良いユーザー エクスペリエンスを維持するために、時間のかかる操作は他のスレッドで実行され、実行完了後に結果がメイン スレッドに返されて表示されます。ただし、UI を他のスレッドから直接操作することはできません。これには、スレッド間で情報を転送するメカニズム、つまりハンドラー、メッセージ キュー、ルーパーが必要です。

Android プラットフォームは主に次の方法で他のスレッドからメイン スレッドにアクセスします:
Activity.runOnUiThread(Runnable)
View.post(Runnable)
View.postDelayed(Runnable, long)
ハンドラー

View.post の背後で実行されているプロセスについては、次の情報を参照してください:
DelayLoad の実装の一種と原理 (パート 2)
この分析を読むと、なぜ View が呼び出されるのかが理解できるでしょう。 onCreate では .post のみが View の高さを取得できます

いいねを押す +0
洪涛

View.post は、Runnable を実行のために UI スレッドのキューに入れるために使用されます

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート