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。