Activityのライフサイクルについて考える

Activityのライフサイクルについて考えたいと思います。

activity_lifecycle

アンドロイドアプリはextends Activityという文言をclassに付加をさせる事がデフォルトとなっていますが、基本的には全てのアンドロイドアプリは、Activityクラスを継承してライフサイクルを行います。

 public class Activity extends ApplicationContext {
     protected void onCreate(Bundle savedInstanceState);
     protected void onStart();
     protected void onRestart();
     protected void onResume();
     protected void onPause();
     protected void onStop();
     protected void onDestroy();
 }

通常の動作ではまず、onCreateを実行していました。

その他のイベントの実行のタイミングを考えていきたいと思います。

 

onStart

1、onCreateの後に実行がされます。

2、onStopの後にonRestartを経て、前面に表示された場合。

となります。2に関しては、onStopの実行される理由を考える必要があります。

 

onStop

1、onPauseの後にそのアプリが見えなくなった場合。

ホーム画面に戻ったり、他のアプリ(全画面を使用)のアプリを立ち上げた時に実行がされます。

 

onPause

1、onResumeの後にそのアプリが他のアプリが立ち上がってしまった場合

ふきだしでアラームが出現するなどの場合に実行されるようです。また、onStopが実行される場合にも一度、onPauseで実行がされるようです。

 

onResume

1、onStartの後に実行がされます。

2、onPauseの後になんの問題もなく、アプリに戻った時に実行

※メモリが他のアプリで大量に使われた場合などはすべてがonCreateから実行されます。。

 

onRestart

1、onStopの後にアプリを再度立ちあげた時に実行。

※メモリが他のアプリで大量に使われた場合などは、onCreateから実行。

 

onCreate

1、最初に実行

2、動作が一時中断されて、他のアプリの使用にメモリが使われてしまった後に再度起動した時

 

onDestroy

1、終了ボタンが押された場合に呼び出されます。

 

と、実際に、とても分かりにくいシステムになっていますが、下記に簡単な例を示します。

 

■起動

[onCreate] -> [onStart] -> [onResume]

■起動中に時計のアラーム(ふきだしとか)がなった。アラームをけしてアプリに戻った。

->[onPause] -> アラーム -> [onResume]

■起動中に時計のアラーム(ふきだしとか)がなった。結構メモリを食うアプリのアラームだ。アラームをけしてアプリに戻った。

->[onPause] -> アラーム ->[onCreate] -> [onStart] -> [onResume]

■起動中に電話(電話にアプリの全画面が奪われている)がなった。電話の後にアプリに戻った。

->[onPause] ->[onStop] -> 電話 -> [onRestart] -> [onStart] -> [onResume]

■起動中に、自動で他のアプリが立ち上がった。結構なメモリを食うアプリで、しばらくしてアプリに戻った。

->[onPause] ->[onStop] ->アプリ -> [onCreate] -> [onStart] -> [onResume]

■起動中に戻るボタンでホームに戻って再度はじめた。

->[onPause] ->[onStop] ->[onDestroy] -> ホーム -> [onCreate] -> [onStart] -> [onResume]

 

一度動作の仕方を確認するとライフサイクルの図がとてもわかりやすく書かれているんだとわかりました。

 

下記サイトを参考にさせていただきました。

初心者がAndroid開発をはじめました ライフサイクルの動作を確認

前後の記事

前の記事:

次の記事:

関連の記事

コメントの投稿

  • サイト内検索

新作アプリの紹介

関連サイトの紹介

アンドロイドアプリ開発TIPS
きぐるみカメラ
ふらいぱん
アンドロイドのデザイン集
Page top↑