Android--Activity篇之启动模式

Activity的启动模式:

定义在AndroidManifest.xml 中,

             android:launchMode="standard"            android:name="com.example.androidstudy.MainActivity"            android:label="@string/app_name"                >                                                                    

共分为四种启动模式:standard、singleTop、singleTask、singleInstance。

默认的启动模式为 standard。表示如果每次如果有一个Intent指向 standard 的启动模式的activity,就会被创建实例化,进入栈顶。

如图,Activity 的 由A -》 B 后,再去启动B,得到的Log是

INFO/LanchModel(2281): ActivityA

INFO/LanchModel(2281): ActivityB

INFO/LanchModel(2281): ActivityB

Android--Activity篇之启动模式_第1张图片Android--Activity篇之启动模式_第2张图片

启动模式设置为 singleTop :表示如果栈顶是该Activity,则直接使用该实例。

本例将ActivityB 的LanchModel 设置为 android:launchMode="singleTop" 则启动的Log为 

INFO/LanchModel(2415): ActivityA

INFO/LanchModel(2415): to ActivityB

INFO/LanchModel(2415): ActivityB

INFO/LanchModel(2415): to ActivityB

由此当ActivtiyB 调用ActivityB的时候,由于B是出于栈顶的位置,所以没有重新创建实例,而是直接使用该栈顶的实例。

Android--Activity篇之启动模式_第3张图片Android--Activity篇之启动模式_第4张图片

启动模式设置为 singleTask:表示如果在栈中存在该实例,则将其返回到栈顶,将其上面其他的活动销毁、出栈,执行ondestroy。

调用顺序 A-》B-》C-》-》A-》B

此时栈的顺序为

Android--Activity篇之启动模式_第5张图片

执行的Log顺序为

 Android--Activity篇之启动模式_第6张图片


启动模式设置为 singleInstance:表示独立启动一个任务栈。

启动顺序为 A-》B-》C 然后 点返回 再点返回

结果为Android--Activity篇之启动模式_第7张图片

Android--Activity篇之启动模式_第8张图片当A启动B时,由于B的启动模式为singleInstance,将会启动一个新的栈,当从栈b启动C时,C位于栈a的顶,所以当C返回时,会先返回到A,再点击返回时,才会返回到栈b中的B

更多相关文章

  1. Android单例模式
  2. Activity的启动模式
  3. Android有进度条的下载图片并且显示图片
  4. Android Button的背景图片拉伸变形解决方法
  5. android图片转换代码
  6. Android 异步从网络上下载图片
  7. android设置背景图片透明
  8. Android上传下载文件(图片)
  9. android 菜单实例

随机推荐

  1. 如何在Android中点击overlay弹出带尾巴的
  2. android:Handler整理总结
  3. android ListView中给Item的每个控件设置
  4. Android(安卓)ExpandableListView的使用
  5. 关于android工程下不能运行java main程序
  6. 【3】Android新建Activity (Eclipse)
  7. PhoneGap 初探
  8. android中Canvas使用drawBitmap绘制图片
  9. 【转】模拟器中运行编译好的Android
  10. Android(安卓)- Device Administration