Androidのイベント配信の仕組みは?

Androidイベントが配信されるプロセスは以下のとおりです。

  1. 出来事:画面をタッチしたり、操作したりしています。
  2. イベントキャプチャ: イベントは最初に最上位の親ビュー(通常はActivityまたはWindow)のdispatchTouchEventメソッドに渡されます。
  3. イベントのディスパッチ:最高レベルの親ビューはイベントを自分のサブビューのdispatchTouchEventメソッドに渡します。
  4. イベント処理: サブビューのdispatchTouchEventメソッドは、イベントを自分自身で処理するか、次のレベルのビューにイベントを渡すかを決定します。
  5. イベント伝搬:子ビューが親ビューへイベントの委譲を決めた場合、そのイベントは親ビューのdispatchTouchEventメソッドに委譲されます。
  6. イベント消費:子ビューがイベントを自ら処理することを決定した場合、そのイベントの処理はビューの onTouchEvent メソッドにより行われます。
  7. イベントバブリング:イベントの処理後、イベントは一番下のビューから一番上の親ビューに向かって伝播します。
  8. イベント処理の結果、イベント処理のフローはイベントが処理されたかどうかを示すブール値を返します。 trueを返した場合、イベントは既に処理済みであり、これ以上伝達されません。 falseを返した場合、イベントは上位ビューの処理に引き続き伝達されます。

注意:イベントディスパッチのフローは、カスタムイベント処理ロジックを実装するために、書き換え可能および変更可能です。

bannerAds