【Android開発】Activityってこんなやつ

机の上のパソコン プログラミング

Android開発のときに当たり前に使われるActivity(アクティビティ)。

Android Studioでプロジェクトを作成するときにも、最初にActivityを選択します。

select-a-project-templete

そんなActivityについてまとめます。

Activityとは

「Activity」とは何でしょうか?

簡単に言えば、 Activity はアプリの画面のことです。

アプリを起動すると何らかの画面が表示されます。その画面のことをActivity といいます。

1つのアプリにActivity は1つだけということはなく、複数のActivity (画面)があることもあります。

複数のActivity がある場合、Activity のどれか1つを「 Main Activity 」に指定する必要があります。

このMain Activity が、ユーザーがアプリを起動したときに最初に表示される画面になります。

Main Activityの指定方法

Main Activityは、マニフェストファイルで指定します。

Android Studioでプロジェクトを作成すると、manifestsフォルダの下に「AndroidManifest.xml」というファイルができます。

この「AndroidManifest.xml 」がマニフェストファイルになります。

アプリで使うすべてのActivityは、マニフェストファイルの<activity>要素で宣言する必要があります。

<?xml version="1.0" encoding="utf-8"?>
<manifest...>
    <application...>
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

上のコードは「AndroidManifest.xml 」を抜粋したものになります。

<activity>要素の中の<intent-filter>で指定する<action…>と<category…>のあるActivityが、Main Activityになります。

実際のアプリで確認してみる

GitHubで公開されている「Android Architecture Blueprints」を参考に、Activityについて見てみましょう。

このサンプルは、TODOアプリになります。

タスクの追加、編集、表示などの機能があり、複数の画面から構成されています。

TODO

マニフェストファイルを確認します。<activity>要素が4つあることがわかりますね。

<manifest...>
    <application...>
        <activity
            android:name="com.example.android.architecture.blueprints.todoapp.tasks.TasksActivity"...>
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
        <activity android:name="com.example.android.architecture.blueprints.todoapp.taskdetail.TaskDetailActivity" />
        <activity android:name="com.example.android.architecture.blueprints.todoapp.addedittask.AddEditTaskActivity" />
        <activity
            android:name="com.example.android.architecture.blueprints.todoapp.statistics.StatisticsActivity"...>
            ...
         </activity>
    </application>
</manifest>

4つのActivityのうち、次の<intent-filter>が含まれている「TasksActivity」がMain Activityだとわかります。

<intent-filter>
    <action android:name="android.intent.action.MAIN" />
    <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>

まとめ

  • Activityは、アプリの画面のこと
  • Activityは、1つのアプリに複数あることもある
  • アプリ起動時に表示するActivityをMain Activityという
  • アプリのすべてのActivityは、マニフェストファイルで宣言する
  • <intent-filter>要素内の<action…><category…>があるものがMain Activity

Android開発のためのオススメ書籍

設計についてのオススメの書籍

Android アプリ設計パターン入門

Android アプリ設計パターン入門

  • 著者: 日高 正博,小西裕介,藤原聖,吉岡 毅,今井 智章,
  • 製本版,電子版
  • PEAKSで購入する

参考サイト

アクティビティの概要

インテントとインテントフィルタ

タイトルとURLをコピーしました