Android的启动模式

2021-01-07  本文已影响0人  浩仔_Boy

自己学习总结,仅供自己参考,如有不对欢迎指正

1.standard

每次都会在当前任务栈创建一个新的实例。允许多个相同实例叠加。
MainActivity(standard模式)SecondActivity(standard模式)
M启动S S点击返回,生命周期如下图:

2.singleTask

在当前任务栈只允许创建一个实例,如果再次被启动则会调用其onNewIntent,并将其上面的activity全部destory。
MainActivity(standard模式)SecondActivity(singleTask模式)ThirdActivity(standard模式)
M启动S S启动T T启动M M启动S S点击返回,生命周期如下图:

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

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变化如下图:

image.png

Activity嵌套Fragment的生命周期

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

image.png
上一篇下一篇

猜你喜欢

热点阅读