您的位置:首页 > 移动开发 > Android开发

Android四大组件之Activity--启动模式

2016-01-19 11:02 393 查看
Android应用多个不同的界面组成,切换界面的同时会打开一个Activity,而根据实际需要,合理的创建Activity实例,会极大的节约应用的内存。

Android系统共提供了四种启动模式:stadardsingleTopsingleTasksingleInstance

【设置方式】

在配置文件中,通过activity标签声明activity时,设置launchMode属性即可:

<activity   android:name=".MainLoadActivity"
android:launchMode="singleInstance" />


【stadard】

stadard模式的activity在被调用时会创建一个新的实例,所有实例处理同一个Intent

【singleTop】

singleTop模式的activity,如果被调用的任务已经有一个这样的Activity在堆栈的顶端,那么不会有新的实例创建,任务会使用当前顶端的Activity实例来处理Intent对 象,也就是是说,如果被调用的任务包含一个不在堆栈顶端的Activity,或者堆栈顶端为singleTop的Activity的任务不是当前被调用的任务,那么,仍然后有一个Activity
对象被创建

【singleTask】

仅可用于启动任务的情况,这种模式的Activity总是处在Activity堆栈的最低端,并且一个任务重只能被实例化一次。

此Activity在堆栈低端,其上方可以有其他Activity被创建,不过如果发给该Activity的Intent对象到来时,该Activity不在堆栈顶端,那么该Inetent对象将被丢弃,但 是界面还是会切换到当前的Activity.

【singleInstance】

仅可用于启动任务的情况,这种模式的Activity总是处在Activity堆栈的最低端,并且一个任务重只能被实例化一次。

任务的堆栈中如果有这样的Activity,那么它将是堆栈中的唯一的Activity,当前任务收到的Intent都由他处理,并且由他开启的其他Activity将在其他任务中被启动;

测试方法,可以创建一个Activity,设置一个button按钮的点击事件,将activity分别设置为四种启动模式,然后点击按钮,观察log输出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: