KotlinのActivityとは?基本構成とライフサイクルを初心者向けに解説!
生徒
「KotlinでAndroidアプリを作るとき、Activityってよく出てくるけど何なんですか?」
先生
「Activity(アクティビティ)とは、スマホ画面1枚ぶんを表すものだよ。アプリの中で画面が切り替わるとき、それぞれが別のActivityになるんだ。」
生徒
「なるほど。画面ごとにActivityってことですね。でもどうやって作るんですか?」
先生
「それじゃあ、Activityの基本構成とライフサイクルについて、わかりやすく解説していこう!」
1. KotlinにおけるActivityとは?
Activity(アクティビティ)は、Androidアプリの中で「1つの画面」を表す部品です。スマホでいうと、写真を表示する画面や、設定を変更する画面など、それぞれが1つのActivityになります。
アプリを開いたときに最初に表示される画面は、MainActivity(メインアクティビティ)と呼ばれます。
Activityは、Kotlinでクラスとして作成され、Androidが用意しているAppCompatActivityという機能を継承して使います。
2. Activityの基本構成(Kotlin)
では、Kotlinで書かれた基本的なActivityのコードを見てみましょう。
package com.example.sampleapp
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}
このコードのポイントは以下の通りです。
class MainActivity:アプリのメイン画面を表すクラス: AppCompatActivity():Androidの基本機能を引き継いで使うという意味onCreate:アプリが起動したときに呼び出される命令setContentView:どのレイアウト(画面の見た目)を使うか指定
3. レイアウトファイルとActivityの関係
レイアウトファイルとは、画面に何をどこに表示するかを決める設計図です。activity_main.xmlのような名前で作られます。
KotlinのActivityでは、このレイアウトファイルとセットで画面を作成します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical">
<TextView
android:id="@+id/textView"
android:text="こんにちは、世界!"
android:textSize="24sp"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
このように、KotlinのコードとXMLのレイアウトを組み合わせてアプリの画面を作っていきます。
4. Activityのライフサイクルとは?
Activityには「ライフサイクル(活動の流れ)」があります。
アプリが起動してから終了するまで、以下のような段階を順番に通ります。
- onCreate:初めて作られるとき
- onStart:画面が見える直前
- onResume:ユーザーが操作できる状態
- onPause:別の画面に移ったとき
- onStop:画面が完全に見えなくなったとき
- onDestroy:完全に終了する直前
これらのタイミングで、アプリの動作を細かくコントロールできます。
5. ライフサイクルを使ったKotlinのサンプル
それでは、Activityのライフサイクルに関するコードの例を見てみましょう。
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
println("onCreateが呼ばれました")
}
override fun onStart() {
super.onStart()
println("onStartが呼ばれました")
}
override fun onResume() {
super.onResume()
println("onResumeが呼ばれました")
}
override fun onPause() {
super.onPause()
println("onPauseが呼ばれました")
}
override fun onStop() {
super.onStop()
println("onStopが呼ばれました")
}
override fun onDestroy() {
super.onDestroy()
println("onDestroyが呼ばれました")
}
}
このコードを使えば、アプリの動きに応じてコンソールにメッセージを表示させることができます。開発中に「いつどの処理が実行されたか」を確認するのに便利です。
6. 画面の向き変更でもライフサイクルは発生する
スマホを横向きにすると、画面の向きが変わりますよね?実はこのとき、Activityは一度破棄されて作り直されるのです。
つまり、onDestroy → onCreateが再び実行されます。開発者はこのライフサイクルを理解していないと、思わぬ動作になることがあります。
7. Activityを学ぶことで何ができる?
Activityの基本とライフサイクルを理解すると、次のようなことができるようになります。
- 画面ごとに機能を分けたアプリを作成
- ボタンを押したときに別画面へ切り替え
- アプリを開いたり閉じたりしたときの動作を制御
KotlinでのAndroidアプリ開発では、Activityがとても重要な役割を持っています。土台がしっかりしていれば、応用もしやすくなりますよ。