検索

ホームページ  >  に質問  >  本文

android - View.post()

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

阿神阿神2826日前884

全員に返信(5)返信します

  • 天蓬老师

    天蓬老师2017-04-17 15:34:23

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

    リーリー

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

    返事
    0
  • 高洛峰

    高洛峰2017-04-17 15:34:23

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

    返事
    0
  • 怪我咯

    怪我咯2017-04-17 15:34:23

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

    に相当します。

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 15:34:23

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

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

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

    返事
    0
  • PHP中文网

    PHP中文网2017-04-17 15:34:23

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

    返事
    0
  • キャンセル返事