Android四大组件之Activity--启动模式
2016-01-19 11:02
393 查看
Android应用多个不同的界面组成,切换界面的同时会打开一个Activity,而根据实际需要,合理的创建Activity实例,会极大的节约应用的内存。
Android系统共提供了四种启动模式:stadard、singleTop、singleTask、singleInstance
【设置方式】
在配置文件中,通过activity标签声明activity时,设置launchMode属性即可:
【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输出。
Android系统共提供了四种启动模式:stadard、singleTop、singleTask、singleInstance
【设置方式】
在配置文件中,通过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输出。
相关文章推荐
- Android GPS之前世今生
- 常用Android开发组件之列表类组件
- Android的传感器开发技术
- Android Handler机制(高级篇)
- Android和PC间的通信
- Android小Demo——OnDragListener
- android权限的分类
- AndroidStudio工程加入svn步骤
- 閿欒: 缂栫爜UTF-8鐨勪笉鍙槧灏勫瓧绗? Android studio乱码
- android 列表倒计时流畅的完美实现
- 推荐几款实用的Android Studio 插件
- Android高效加载大图、多图解决方案,有效避免程序OOM
- Android测试环境配置
- Android性能优化典范
- android自带图片资源图标一览,android.R.drawable
- Android应用内打开QQ聊天框
- android shape的使用
- Android--AndroidManifest 中original-package标签
- android之android studio的NDK环境搭建
- Android Studio常用插件