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

MainActivityのクラス

 次に、MainActivityのクラスを見ていきましょう。リスト1 の(3)は前述したように、ActionBarActivityを継承したクラスを作成しているコードです。ActivityはAndroidのフレームワークが提供するクラスを継承して利用します。

 このActivityが開始されると、(5)のonCreateメソッドが呼び出されます。(4)の「@Override」は、アノテーションと呼ばれています。アノテーションは「注釈」といった意味ですが、@Overrideは(5)で定義するonCreateメソッドが上書き(オーバーライド)するということをコンパイラに知らせています。

 もともとonCreateメソッドは、MainActivityの継承元であるActionBarActivityクラスが備えているメソッドです。そのため、「メソッドを上書きしますよ」と宣言しているのです。アノテーションを付けたクラスがアノテーション通りに実装されていない場合は、コンパイルエラーになります。

 onCreateメソッドは、Bundle型のsavedInstanceState変数を引数に取っています。この変数は、前回のアプリケーション終了時の状態を保持しています。

 Bundleは、キーとバリュー形式でデータを保存できるクラスです。Activityは、一時停止(Pause)したり停止(Stop)したりするときに、画面の状態をBundleクラスのオブジェクトに保存しておきます。破棄(Destroy)されると値は消えてしまいます。

 例えば、画面にテキスト入力エリアがあり、何らかの文字を入力したとしましょう。このときActivityは文字列を保持しています。ですが、画面を縦に使っていたものを、傾けて横にしたとします。端末を回転させたりすると、Activityは停止してしまいます(図9)。

図9 ●画面を回転させるとActivityが再起動する
図9 ●画面を回転させるとActivityが再起動する
[画像のクリックで拡大表示]