PR

【注意】記事中のソフトウエアの画面や操作は、記事執筆時点のバージョンのものです。最新バージョンでは異なっている場合があります。

 最後に、GUIアプリケーションには欠かせない「イベントハンドラ」と「コールバック」について触れておきましょう。Androidアプリケーションに限らず、GUIアプリケーションの多くは、ユーザーが何かの処理を行うことで動作するものがほとんどです。例えば、クリックしたら画面を表示する、ある部分にマウスカーソルを置くと色が変化する、といったように、ユーザーが操作することによって何らかの処理を施します。

 このようなユーザーの何らかの操作を「イベント」と呼びます。スマートフォンやタブレット向けのアプリケーションでは、画面上のボタンをタップするといったイベントがあるでしょう。

 ここでは、ユーザーがボタンを押すと文字列が表示されるような簡単なアプリケーションを作ってみます。図1のようなものです。それには、いったいどのようなコードを記述すればよいのでしょうか。

図1 ●ここで作成するサンプルのアプリケーション。ボタンを押すと、メッセージが表示される
図1 ●ここで作成するサンプルのアプリケーション。ボタンを押すと、メッセージが表示される
[画像のクリックで拡大表示]

 単純に考えれば、ボタンがタップされたかどうかを常に監視する処理を実装すればよいように思えます。しかしその場合、監視プロセスを常に動かさなければならず、CPUのリソースを必要としてしまいます。リソースに限りのあるスマートフォンやタブレットでは、あまり現実的とはいえません。

 そこで、イベントハンドラを利用します(図2)。イベントハンドラとは、特定のイベント(ボタンのクリックなど)に関連付けられた一連の処理のまとまりのことです。イベントが発生すると、自動的にイベントハンドラを起動して、一連の処理を実行する仕組みになっているのです。イベントハンドラは、Android OSが起動します。つまり、Android OSは、常にイベントを監視していることになります。

図2 ●イベントハンドラのイメージ
図2 ●イベントハンドラのイメージ
[画像のクリックで拡大表示]

 イベントの発生時に呼び出すために、あらかじめ指定しておくメソッドのことを特別に「コールバックメソッド」と呼びます。例えば、ボタンを押した時に呼び出されるonClickメソッドなどは、コールバックメソッドに該当します。