Android application development 第4章:Activityとライフサイクルの概念

Androidアプリ開発では、Activity(アクティビティ) というクラスが非常に重要な役割を担います。Javaで言えば「アプリケーションの1つの“画面”に相当するクラス」と考えてください。


■ Activityとは?

Activityは、Androidアプリで ユーザーが操作する1つのUI画面 を表すコンポーネントです。例えば、次のようなものがそれぞれ1つのActivityとして実装されます:

  • アプリを起動したときに表示されるホーム画面
  • ログイン画面
  • 商品一覧や詳細ページ
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
}

上記のように、Activityは AppCompatActivity を継承し、onCreate() メソッドの中でUIを設定するのが基本形です。ここでいう setContentView() によって、XMLレイアウトとActivityの紐付けを行います。


■ ライフサイクルとは?

Activityはただ1度だけ実行されて終了するわけではありません。ユーザーが別の画面に移動したり、端末を回転させたり、アプリをバックグラウンドにしたりすると、自動的に状態が変化し、それに応じてAndroidが特定のメソッドを呼び出します

これが Activityのライフサイクル(生存期間) です。


■ 主なライフサイクルメソッド

メソッドタイミング役割
onCreate()初回生成時初期化処理(UIセットアップなど)
onStart()表示直前UIの表示準備
onResume()ユーザー操作可能になる直前アクティブ状態
onPause()他の画面に遷移するとき一時停止(音楽停止など)
onStop()完全に非表示になる時リソース解放、保存など
onDestroy()完全に破棄される直前最終的なクリーンアップ

■ ライフサイクルが重要な理由

Androidはメモリが限られているため、必要に応じてActivityを破棄・再生成します。例えば画面回転をすると onDestroy()onCreate() と呼ばれることがあります。

このため、次のような考慮が必要です:

  • onSaveInstanceState() を使って一時データを保存する
  • UI初期化やリスナー登録は onCreate()onStart() に集中させる
  • 再開時の再描画やリスナー再登録は onResume() に任せる

■ まとめ:Javaのmainメソッドとは考え方が異なる

Javaアプリケーションでは main() が始点であり、終了するまで流れは比較的固定ですが、AndroidのActivityは「状態が変わるたびに再度“呼ばれる”」構造です。

この“呼ばれる”構造を理解することで、画面遷移や状態保存、パフォーマンスの最適化がスムーズになります。

mh

Related Posts

Android application development 第33章:実践ミニアプリ:天気情報アプリ

Android application development 第32章:実践ミニアプリ:シンプルなToDoリスト

You Missed

Kubernetes Learning 第40章:Kubernetesのアップグレードとバージョン管理 ~安全にバージョンを上げるための基本知識~

  • 投稿者 mh
  • 6月 24, 2025
  • 152 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第13章:ストレージとデータベースの基礎 : オブジェクトストレージ: Cloud Storage(バケット、オブジェクト、ストレージクラス)- あなたの「データ置き場」

  • 投稿者 mh
  • 6月 23, 2025
  • 162 views

Kubernetes Learning 第39章:CRD(Custom Resource Definition)とは?~Kubernetesに“自分専用のリソース”を追加する仕組み~

  • 投稿者 mh
  • 6月 21, 2025
  • 167 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第12章:Cloud CDN(Content Delivery Network):あなたのWebサイトを「世界中のユーザーに超高速で届ける宅配便ネットワーク」

  • 投稿者 mh
  • 6月 20, 2025
  • 199 views

Kubernetes Learning 第38章:Operatorとは? ~Kubernetesに「運用の自動化ロボット」を組み込む仕組み~

  • 投稿者 mh
  • 6月 19, 2025
  • 176 views

Google Cloud Platform エンジニア向け教科書:実践から認定まで : 第11章:Cloud Load Balancing:あなたのGCPリソースを「賢く振り分ける交通整理の達人」

  • 投稿者 mh
  • 6月 18, 2025
  • 192 views