Android Activity 生命周期和LaunchMode 规则

今天查阅了关于Activity的四种LaunchMode的表现规则,并且实验了一把,趁着热乎的思绪,将其记录下来。

1.standard:常规启动,每调用一次startActivity,就创建一个Activity实例。

2.singleTop:当被启动的Activity处于ActivityTask的栈顶时,不创建新的Activity实例。其它情况和standard相同。

3.singleTask:当被启动的Activity已经有实例处于Task栈中时,则不创建新实例,而是把被启动的singleTask Activity上面的Activity全部pop出栈(被pop的Activity会destroy)。

4.singleInstance:该模式的Activity存在单独的Task栈中,这个栈在Activity启动的时候创建,其中只有一个Activity,由此Activity启动的其它Activity不会在此栈中,而是在被启动Activity默认的栈中。

 

Activity的生命周期:

onCreate --> (onNewIntent -->onRestart) --> onStart --> onResume --> onPause --> onStop --> onDestroy

onRestart: (猜测:在Activity stop后)重新回到前台的时候触发,第一次启动不会触发。

onNewIntent: 在已经实例化的Activity,被startActivity调度到前台的时候,会触发。

学习:http://blog.csdn.net/jaywrzz/article/details/68488362  后知道,Activity创建后的状态有三种:前台、非前台可见、不可见。

在进入前台和退出前台 分别触发:onResume和onPause;

在进入可见状态和不可见状态时分别触发:onStart和onStop;

在onPause和onStop之间可以理解为非前台可见状态。

在按返回键时会让Activity出栈,出栈时触发Activity的onDestroy。

 

posted @ 2017-03-31 15:44  nwxueyu  阅读(190)  评论(0编辑  收藏  举报