Android開発のときに当たり前に使われるActivity(アクティビティ)。
Android Studioでプロジェクトを作成するときにも、最初にActivityを選択します。
そんな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アプリになります。
タスクの追加、編集、表示などの機能があり、複数の画面から構成されています。
マニフェストファイルを確認します。<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開発のためのオススメ書籍
設計についてのオススメの書籍