Androidによる開発
ライフサイクル
今回は、今までよりもより実践的なアプリケーション開発を紹介します。
実際のアプリケーションを作成する前に、まずはAndroidの特徴的な仕組みについて解説します。
Androidは画面を持つアプリケーションはアクティビティ(Activity)を持ち、フォアグラウンドのアクティビティは1つだけ存在する構造になっています。そして、フォアグラウンドのアクティビティに変化がある時にアクティビティが継承している以下のメソッドが呼ばれます。
・onCreate(Bundle)
アクティビティが最初に起動する時に呼ばれます。onSaveInstanceStateメソッドで保存された情報がある場合は、引数のBundleにその情報が渡されてきます。
・onStart()
アクティビティが表示される直前に呼び出されます。
・onResume()
アクティビティがユーザーの入力を受け付けるようになる時に呼び出されます。メディアの再生などを開始するのによいタイミングです。
・onPause()
アクティビティがバックグラウンドになる直前に呼び出されます。このメソッドが呼ばれた後はメモリが少なくなるとアプリケーションが何の通知もなく破棄されることがあるので、このタイミングで設定値などの保存を行うと良いでしょう。
・onStop()
アクティビティがしばらく使われなくなった時に呼び出されます。ほかのアクティビティが起動してバックグラウンドになった時や、アプリケーションが終了する直前に呼び出されます。しかし、onPauseの説明で書いたようにメモリが少なくなった場合はonStopやonDestroyが呼び出されずにプロセスが破棄される場合があるので注意が必要です。
・onRestart()
onStopが呼ばれた後に、ほかのアクティビティが終了する等で、再びアクティビティが表示される時に呼び出されます。
・onDestroy()
アクティビティが破棄される直前に呼び出されます。onStopの説明で書いたように呼び出されないこともあるので注意が必要です。
・onSaveInstanceState(Bundle)
インスタンスの状態を保存すべきタイミングで呼び出されます。ここで引数のBundleに対して値を保存します。いったんアプリケーションのプロセスが終了していても、保存した値はonCreateメソッドの引数に引き継がれるので、再度起動した時にBundleで渡される値を利用して状態を復元させることができます。
各メソッドが呼び出される順番は図1の通りです。
次に、Androidを使って動画を再生するアプリを作成する手順を紹介します。