Android的启动模式
2021-01-07 本文已影响0人
浩仔_Boy
自己学习总结,仅供自己参考,如有不对欢迎指正
1.standard
每次都会在当前任务栈创建一个新的实例。允许多个相同实例叠加。
MainActivity(standard模式)
、SecondActivity(standard模式)
M启动S S点击返回,生命周期如下图:
-
image.png
2.singleTask
在当前任务栈只允许创建一个实例,如果再次被启动则会调用其onNewIntent,并将其上面的activity全部destory。
MainActivity(standard模式)
、SecondActivity(singleTask模式)
、ThirdActivity(standard模式)
M启动S S启动T T启动M M启动S S点击返回,生命周期如下图:

Activity任务栈的变化,如下图:

3.singleTop
允许创建多个实例,但是当Activity是singleTop模式并存在栈顶的时候,再启动不会创建新的实例,而会调用栈顶Activity的onNewIntent
4.singleInstance
会创建一个单独的任务栈,且任务栈中只有他一个Activty实例,不允许其他Activity出现。
实际使用场景类似浏览器,当多个程序调用浏览器时,如果浏览器没有启动则启动,启动了就在浏览器中访问。
MainActivity(standard模式)
、SecondActivity(singleInstance模式)
、ThirdActivity(standard模式)
M启动S S启动T T启动M M启动S 任务栈中activity变化如下图:

Activity嵌套Fragment的生命周期
1.首先会走完fragmen
t的onAttach-onCreateView-onViewCreated
之后,执行Activity的生命周期。
2.当执行完Activity的onCreate
方法后,会执行Fragment的onActivityCreated
