Android Activity 有四种启动模式:“standard” (默认),“singleTop”,“singleTask”,“singleInstance”.


这四种到底有什么区别呢?

下面假设有两个Activity A & B来描述以下启动模式的区别,程序逻辑就是A可以点击Button跳转到B,B可以点击Button跳转到A.

“standard” (默认):

如果执行以上的操作,栈中就会有无数个A/B,即A->B->A->B->A->B。


“singleTop”:(单栈顶部单例)

如果该Activity在栈顶部,就不会创建新的Activity,如果不在顶部就会,比如还是执行standard的操作,其结果一样为:A->B->A->B->A->B。

但是如果是用A启动B,再启动B,就只是(A->B)而不是默认情况下的(A->B->B)


“singleTask”:(单栈单例)

不管跳转,一个栈中只会有一个实例,以上操作结果为(A->B or B->A)


“singleInstance”(多栈)

当创建这个Activity会单独开启一个栈,比如A为正常模式,B为singleInstance模式,执行A-》B-》A的操作最后栈的结果为(A->A B)

退栈的顺序为(B -> A -> A)







更多相关文章

  1. Android(安卓)Camera HAL3中预览preview模式下的控制流
  2. Android中的Service组件详解
  3. Android(安卓)5.1开机自启动示例程序(Activity,APP包启动)
  4. Android4.0.3修改启动动画和开机声音
  5. android activity启动过程分析
  6. android常用的电话操作
  7. android 1.5 SDK 模拟器无法启动问题 “Failed to find an AVD m
  8. Android系统移植与调试之------->如何修改Android启动动画和开机
  9. 玩转Android之Activity详细剖析

随机推荐

  1. android中Intent传值与Bundle传值详解
  2. Android系统信息获取 之十四:获取WIFI热点
  3. 怎样用 C/C++ 开发一个原生程序运行在 An
  4. Android通过百度地图API用Service和Alarm
  5. Android input输入设备键值从底层到应用
  6. android直接读取项目中的sqlite数据库
  7. 【Flutter】认识目录结构
  8. android UI秘笈
  9. Android 资源,国际化,自适应
  10. 为什么我喜欢android