Activity加载模式 launchmode

一、Activity stack

Activity栈主要用于管理Activity的切换。当使用Intent跳转至某个目标Activity,需要根据目标Activity的加载模式来加载。

二、四种Activity加载模式:

standard:默认,每次使用Intent跳转到目标Activity时都创建一个新的实例。坏处是每次进入都要创建新的实例,执行OnCreate方法。


Activity加载模式 launchmode_第1张图片

singleTop:如果要跳转的目标Activity正好在task的顶部(说明当前肯定不在目标task里,例如我在微信首页,然后想使用Intent跳转到InnoXYZ应用的首页,那么加入InnoXYZ首页正好在InnoXYZ的task顶部,就直接跳转而不会创建实例),那么就直接跳转过去而不会创建新的。(例子,当前在Home Screen, 收到一条微信首页的推送,而此时task栈里的微信task里的Activity栈里的最顶部正好就是微信首页,那么点击推送就直接进入该实例而不会创建新的实例)


Activity加载模式 launchmode_第2张图片

singleTask:会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。

singleInstance:是其所在栈的唯一activity,它会每次都被重用。

三、Task的概念

你可能感兴趣的:(Activity加载模式 launchmode)