Androidプログラミングの基本となるアクティビティ(Activity)の基本中の基本。
Androidのスマートフォンアプリは、基本的に全画面単位で画面を切り替えます。一部ポップアップウインドウのような形式で表示され背面が半透明のような感じになることもありますが、そこをタッチすることはできません。こういう全画面単位での切り替え方式でのひとつひとつの画面をActivityと呼んでます。基本はActivityなんですが、なんでもかんでも全画面で切り替えていると辛いことになるということで、画面を部分的に切り替えるFragmentという技術がありますが、勉強不足なので、その話はまた今度。
Activityがどのように生まれてデストロイされていくのかについては、「Activity ライフサイクル」というキーワードで画像検索すると、同じようなフロー図がたくさん出てくるので、そちらを参照(要は自分で書くのが面倒だった)していただくとして、それぞれのActivityどうしがどういう管理をされているのかについて、(これもよく見かける)喩え話をします。
Activityは積み重ねられたトランプ
ひとつのActivityをトランプのカードの一枚に例えます。
カードを1枚、机の上に置くという行動がひとつのActivityを開始すると思ってください。机に置いた1枚目のカードの上に別のカードを重ねます。別のActivity(2枚目のカード)を開始したので、1枚目のカードは見えなくなります。さらに別のカードを重ねると、2枚目のカードも見えなくなります。3枚のカードが重なっている状態から一番下のカードの数字とマークを確認するため、1番上のカードを取り除き、次に2番めのカードを取り除きます。
このようにAndroidのアプリも、たくさんのActivityが順に重なっており、一番新しいActivityが画面に表示され(一番上のトランプの数字とマークが見えている状態で)、その他のActivityは背面に隠れている(一時停止)状態です。下の方のActivityを表示する(下の方のカードを確認する)には、上から順番にめくっていかなければいけません。スタック方式の管理ですね。
あくまでも基本なので、実際には、画面のないアプリもありますし、タスク管理から一気に別のActivityに移るようなこともできますが、それは別の機会にメモります。
次回は、Activityを次のActivityに繋げるインテント(Intent)についてメモる予定です。
【参考サイト】
コメント
コメントなどありましたら、GitHubのディスカッションへお願いします。(書き込みには、GitHubのアカウントが必要です)