四大组件之一---------activity的知识
activity的生命活动
activity的四种启动模式
Android中以一个任务栈用来管理activity
一个栈的形式进行管理
在清单文件中,通过<activity>标签的android:launchMode属性设置启动模式
1 <activity 2 android:name="com.example.MainActivity" 3 android:label="@string/app_name" 4 android:launchMode="standard"> //模式的设置 5 <intent-filter> 6 <action android:name="android.intent.action.MAIN" /> 7 8 <category android:name="android.intent.category.LAUNCHER" /> 9 </intent-filter> 10 </activity> 11
sandard模式(默认的工作模式)
在这种模式下,每启动一个activity都会在任务栈中启动一个新的activity进栈,即便是打开相同的页面,系统也不会判断该activity是否存在,而是直接启动一个新的activity加入任务栈中。
在进行出栈的时候,需要先出第二个activity2,再出栈第一个activity2
singleTop模式
当需要启动的activity已经位于栈顶的时候,则不会创建活动。
singleTask模式
该activity只能在整个应用存在一个实例
singleinstance模式
该activity在整个系统中,只能存在一个实例
采用这种模式会出现三种状况
第一种:如果启动的activity不存在,
系统会先创建一个新的任务栈,再创建这个activity的实例,并将这个activity加入新的任务栈中
第二种:如果要启动的activity已经存在了,
无论是哪个应用程序,或者是任务栈,启动这个activity,系统都会将activity所在的任务栈转到前台。
第三种:当activity2已经存在于系统前台时,我们再启动activity1
系统不会执行activity1的模式,只是会将activity1跳转到前台