activity的生命活动

四大组件之一---------activity的知识-LMLPHP

activity的四种启动模式

Android中以一个任务栈用来管理activity

一个栈的形式进行管理

在清单文件中,通过<activity>标签的android:launchMode属性设置启动模式

 <activity
android:name="com.example.MainActivity"
android:label="@string/app_name"
android:launchMode="standard"> //模式的设置
<intent-filter>
<action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>

sandard模式(默认的工作模式)

在这种模式下,每启动一个activity都会在任务栈中启动一个新的activity进栈,即便是打开相同的页面,系统也不会判断该activity是否存在,而是直接启动一个新的activity加入任务栈中。

四大组件之一---------activity的知识-LMLPHP

在进行出栈的时候,需要先出第二个activity2,再出栈第一个activity2

singleTop模式

当需要启动的activity已经位于栈顶的时候,则不会创建活动。

四大组件之一---------activity的知识-LMLPHP四大组件之一---------activity的知识-LMLPHP

singleTask模式

该activity只能在整个应用存在一个实例

四大组件之一---------activity的知识-LMLPHP

singleinstance模式

该activity在整个系统中,只能存在一个实例

采用这种模式会出现三种状况

第一种:如果启动的activity不存在,

  系统会先创建一个新的任务栈,再创建这个activity的实例,并将这个activity加入新的任务栈中

第二种:如果要启动的activity已经存在了,

  无论是哪个应用程序,或者是任务栈,启动这个activity,系统都会将activity所在的任务栈转到前台。

第三种:当activity2已经存在于系统前台时,我们再启动activity1

系统不会执行activity1的模式,只是会将activity1跳转到前台

四大组件之一---------activity的知识-LMLPHP四大组件之一---------activity的知识-LMLPHP

04-16 13:46
查看更多