Android的启动方式

  在配置Activity时通常会用到android:launchMode属性,该属性用于配置Activity的加载模式,即启动方式。有4种启动方式:

  ---standard:标准模式,这是默认的加载模式;

    ---每次通过此方式启动的activity,系统会为目标activity创建一个新实例,并将其添加到当前的Task中(不会启动新的Task,添加到原有的Task中)

  ---singleTop:Task顶单例模式;

    ---与标准模式类似,但是当被启动的目标Activity已经位于Task栈顶时,系统不会再重新创建新的activity实例,直接复用栈顶的activity。

  ---singleTask:Task内单例模式;

    ---即在同一个Task内置有一个Activity的实例。(即如果启动的目标Activity已存在,但没在栈顶,则会把当前activity上的所有activity移除,从而使目标activity到栈顶

  ---singleInstance:全局单例模式

    ---系统保证无论从哪个Task中启动目标Activity,只会创建一个目标Activity实例,并会使用一个新的Task栈装载该Activity实例

  Activity的加载模式用处? 当启动一个应用时,系统会为之创建一个Task,然后启动这个应用的入口activity。

  Android的Task是一个较复杂的概念---因为Android并未给Taskt提供API,因此开发无法真正访问Task,只能调用Activity的getTaskId()获取它所在Task的ID,事实上,Task可以理解为Activity栈。Task以栈的形式来管理Activity;先启动的Activity被放在Task栈底,后启动的放在Task栈顶。

  那么4种加载模式,负责管理实例化,加载Activity的方式、并可以控制Activity与Task之间的加载关系。

posted @ 2019-05-07 22:09  Mrgaoxz  阅读(103)  评论(0编辑  收藏  举报