阅读:5058回复:1
Android Activity和AMS系列(一)
Activity可以说是安卓最常用的一个组件,下面我和大家一起来了解他的来龙去脉。
本文原始资料来自于查阅相关博客和源代码的整理归纳总结得来。 1.Activity生命周期(LifeCircle) 完整的生命周期如下图: 图片:Activity生命周期.png 其中 可见生命周期(Visible lifetime):(onStart() --> onStop()) 前台生命周期(Foreground lifetime):(onResume()--> onPause()) 1.Activity的Task(Back Stack)和启动模式(Lunch Mode) Activity依次启动后,一般来讲,新启动的activity会覆盖到上一个启动的activity之上,当我们按下返回键时,当前的activity会消失,上一个activity会重新浮现出来。这个activity列表保存在一个栈(Task)中,因为刚好符合需求,先启动的在底下,后启动的在顶上(先进后出),这个保存activity的task也叫作Back Stack。 图片:ActivityTask_看图王.png 也不是所有的情况都是向上面说的那样,在Activity启动的时候,我们可以设置启动模式(Launch Mode),来设置保存或者创建的策略,主要有以下几种模式选择: standard(the default mode): 每启动一个新的Activity,都会创建一个新的实例,Activity A启动的ActivityB,那么B就在A的Task栈里面。 singleTop: 如果启动的Activity已经在栈顶,则不会再创建实例。onCreate、onStart不会被系统调用,但是它的onNewIntent会被回调。 singleTask: 只要启动的Activity在栈里面,则不会再创建实例,并且这个Activity之上的所有Activity全部出栈,如果没有在栈里面,则创建实例 singleInstance: 这种模式是为了不同的APP能共享Activity,启动的Activity会在一个单独的Back Stack中,并保证不再有其他Activity实例进入,也是说这个Back Stack只有这一个Activity。 图片:Activity Launch mode.png 在列一个例子,这种情况要注意看图: 图片:singleTask.png |
|
|
沙发#
发布于:2020-04-01 10:02
|
|
|