Tagbangers Blog

<勉強会>Androidでのアプリ開発における概念的なお話

勉強会で学んだこと、webで調べたことをまとめてみました。理解が不十分なところはありますが、アウトプットして整理できたらなと思います。

Avtivityについて

Activityとは「Androidアプリの画面」に相当するもの。基本的には一つの画面に対して一つのActivityと考える。(一概にそうといえない部分もあるようですね)アプリケーションが保持するActivityだけでなく他のアプリケーションを利用することも可能なのが特徴である。つまり、他のアプリの画面を呼び出して自分のアプリ内で部分利用することが出来る。よって、Activityを利用しさまざまな表示ができるようになる。

ここで、知っておかなくてはならないのは「ライフサイクル」という状態遷移の話でした。そもそもライフサイクルって開始→実行→終了のように状態が遷移していくことだと思うけど、

じゃActivityのライフサイクルのイメージはどんな感じなの?

Activityでのライフサイクルはこんなイメージ

onCreate() :アクティビティ生成時に呼ばれる
onStart() :アクティビティの表示が開始された時に呼ばれる
onRestart():停止状態から表示再開に遷移する時に呼ばれる
onResume():ユーザーの操作受付を開始した時に呼ばれる
onPause():ユーザーの操作受付を中断した時に呼ばれる
onStop():アクティビティの表示を中断した時に呼ばれる
onDestroy():アクティビティが破棄された時に呼ばれる

確かに状態が循環してますね。アプリのアイコンをクリックするとActivityが開始となり、onCreate()→onStart()→onResume()が順に呼ばれて「実行中」の状態となる。同じアプリの別のActivityが開始された場合(別のページに移動する場合など)は、onPause()→onStop()となり、今まで表示されていたActivityは非表示となる。非表示となったActivityは他のActivityの裏に隠れて表示されていないだけで停止中のままなので、再度表示するにはonRestart()→onStart()→onResume()が呼ばれて実行中となる。

じゃぁ、非表示となったActivityはどのタイミングで終了するの?

Activityは他のActivityに遷移したり、バックボタンで閉じたりしても起動し続けるので注意が必要。終了させるためには明示的にActivityの終了命令をだす必要があり、終了となる場合はいろいろなパターンがあるそうですが、基本的にActivityが開始される前の状態に戻るとActivityはいったん終了となる。

intentについて
intentは、複数のアプリケーションやActivityをつなぐ、架け橋のようなもの。簡単に言えばActivityなどが他のアプリケーションなどと情報のやり取りを 行うための箱のようなもで、intentという箱には、相手先や届けたい情報などが含まれている。例えば、他の画面を表示させたい場合など、Activityから 他の指定したActivityへintentを送る場合などでつかわれる。つまり、intentはActivityやサービス間などで情報のやり取りを仲介するものです。

まとめると各メッソドを呼び出しintentを渡すことで画面遷移し表示されるといったところでしょうか。

今回はこんな感じで終わります。勉強して学んだことはどんどんアウトプット出来ればと思います。