Activity的四种加载模式
2015-05-23 19:40
141 查看
什么是Task?
Activity在堆栈中以Task的形式聚集在一起
1.)Task由一系列相关的Activity组成,描述用户完成某一个操作所需要的Activity
2.)当我们从Launcher上点击一个应用图标的时候,就启动一个Task
3.)Task是用Android多任务的一种体现
Activity堆栈由ActivityManagerService维护
Android采用Task来管理多个Activity。
图1.Task
Android采用Task来管理多个Activity。如上图,
当我们启动App的时候,Android就会为我们创建一个Task,并且第一个加入的就是我们在Androidmanfiest.xml文件中配置MAIN和LAUNCHER的Activity 1,Activity
1跳转到Activity 2,
Activity 2跳转到Activity 3,Activity
2、[b]Activity 3依次加入栈中,按返回键回退后后,[/b]
[b]Activity
3移除出栈。基本的流程就是这样的。[/b]
并且我们无法真正的访问Task,只能通过getTaskId()方法获取Task的ID。
Activity有4种加载模式
我们只需在Androidmanfiest.xml文件中给Activity配置android:LaunchMode=""属性。
一、standard模式
通过这种模式启动的activity,都会创建一个新的Activity,即使一个该Activity类实例在栈顶,它还是会创建一个新的Activity压入栈中。
二、singleTop模式
如果有该Activity类的实例在栈顶,就会直接复用已有的Activity实例,不会创建新的实例,反之则调用Activity的newInstance()方法产生一个新实例。
singleTop模式,可用来解决栈顶多个重复相同的Activity的问题
三、singleTask模式
在一个新的Task中产生这个实例,以后每次调用都会使用此实例,而避免产生新的实例。
即这种方式加载的Activity在同一Task仅有一个实例。
1.)如果启动的Activity不存在,则会创建一个Activity实例并压入栈顶。
2.)如果该Activity已经位于栈顶,则会直接复用,不会创建。
3.)该Activity存在,但不在栈顶,会移除该Activity上其他的Activity,让其位于栈顶。
四、singleInstance模式
采用singleInstance创建的Activity总是位于栈顶,因为它所在的Task仅有它一个实例。
保证系统无论从哪个Task启动Activity都只会创建一个实例,并将它压入Task栈顶。
1.)如果启动的Activity不存,会创建一个该Activity的实例,并将它压入Task栈顶。
2.)已经存在,无论位于那个Task,都会将它移到前台,让该Activity显示出来。
Activity在堆栈中以Task的形式聚集在一起
1.)Task由一系列相关的Activity组成,描述用户完成某一个操作所需要的Activity
2.)当我们从Launcher上点击一个应用图标的时候,就启动一个Task
3.)Task是用Android多任务的一种体现
Activity堆栈由ActivityManagerService维护
Android采用Task来管理多个Activity。
图1.Task
Android采用Task来管理多个Activity。如上图,
当我们启动App的时候,Android就会为我们创建一个Task,并且第一个加入的就是我们在Androidmanfiest.xml文件中配置MAIN和LAUNCHER的Activity 1,Activity
1跳转到Activity 2,
Activity 2跳转到Activity 3,Activity
2、[b]Activity 3依次加入栈中,按返回键回退后后,[/b]
[b]Activity
3移除出栈。基本的流程就是这样的。[/b]
并且我们无法真正的访问Task,只能通过getTaskId()方法获取Task的ID。
Activity有4种加载模式
我们只需在Androidmanfiest.xml文件中给Activity配置android:LaunchMode=""属性。
一、standard模式
通过这种模式启动的activity,都会创建一个新的Activity,即使一个该Activity类实例在栈顶,它还是会创建一个新的Activity压入栈中。
二、singleTop模式
如果有该Activity类的实例在栈顶,就会直接复用已有的Activity实例,不会创建新的实例,反之则调用Activity的newInstance()方法产生一个新实例。
singleTop模式,可用来解决栈顶多个重复相同的Activity的问题
三、singleTask模式
在一个新的Task中产生这个实例,以后每次调用都会使用此实例,而避免产生新的实例。
即这种方式加载的Activity在同一Task仅有一个实例。
1.)如果启动的Activity不存在,则会创建一个Activity实例并压入栈顶。
2.)如果该Activity已经位于栈顶,则会直接复用,不会创建。
3.)该Activity存在,但不在栈顶,会移除该Activity上其他的Activity,让其位于栈顶。
四、singleInstance模式
采用singleInstance创建的Activity总是位于栈顶,因为它所在的Task仅有它一个实例。
保证系统无论从哪个Task启动Activity都只会创建一个实例,并将它压入Task栈顶。
1.)如果启动的Activity不存,会创建一个该Activity的实例,并将它压入Task栈顶。
2.)已经存在,无论位于那个Task,都会将它移到前台,让该Activity显示出来。
相关文章推荐
- singleTop和singleTask的区别(附带 Activity 四种加载模式简介)
- Activity的四种加载模式s
- Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance
- Android学习记录(8)—Activity的四种加载模式及有关Activity横竖屏切换的问题
- Android学习记录(8)—Activity的四种加载模式及有关Activity横竖屏切换的问题
- Activity的四种加载模式
- android中activity的四种加载模式
- Activity的四种加载模式
- Activity的四种加载模式 (夏注:四种加载模式讲的最易理解)
- Android基础知识回顾--Activity四种加载模式分析
- 区分Activity的四种加载模式
- Android四种Activity的加载模式
- Activity的四种加载模式
- Android Activity四种加载模式
- Android学习--Activity的四种加载模式
- 区分Activity的四种加载模式
- Activity的四种加载模式
- 区分Activity的四种加载模式
- 区分Activity的四种加载模式
- Activity有四种加载模式:standard(默认), singleTop, singleTask和 singleInstance