Activity有四种启动模式:
1.Standard(默认模式)
2.Topsingle
3.SingleTask
4.Singlestance
在AndroidManifest.xml中的标签中的android:launchMode属性设置或者通过Intent的flag设置

任务栈
启动模式是基于任务栈中的,任务栈是一种用来放置Activity实例的容器,他以栈的形式进行盛放。当启动一个Application的时候,系统会默认创建一个对应的Task,用来放置根Activity。
任务栈可以理解为实现一个功能而负责管理所有用到的Activity实例的栈。

standard:
默认模式,可以有多个相同的实例,允许多个相同的Activity叠加。

Topsingle:
栈顶复用模式,如果开启的activity在任务栈的顶部已经存在,就不会创建新的实例,直接调用onNewIntent()方法。
应用场景:通知栏点击收到通知启动的activity;

singleTask:
栈内复用模式,activity只会在任务栈中存在一个实例。
应用场景:App主页

singlestance:
单一实例模式,整个手机系统中只有一个存在。
应用场景:调电界面

Intent的Flag设置:
FLAG_ACTIVITY_NEW_TASK
使用一个新的Task来启动Activity,但启动的每一个Activity都在一个新的Task中。(通常使用从Service启动Activity场景)

FLAG_ACTIVITY_SINGLE_TOP
使用singleTop启动Activity

FLAG_ACTIVITY_CLEAR_TOP
使用singleTask模式启动Activity

FLAG_ACTIVITY_NO_HISTORY
当该Activity启动其他Activity后,该Activity就消失了。

参考:
http://www.jianshu.com/p/2a9fcf3c11e4
https://hit-alibaba.github.io/interview/Android/basic/Android-LaunchMode.html

更多相关文章

  1. Activity四种启动模式(android:launchMode)
  2. Appium的代码实例及日志分析
  3. Appium+Python appium启动夜神模拟器定位元素(三)
  4. Android应用程序的startActivity过程
  5. activity的启动方式(launch mode)
  6. Android前台服务 音乐播放器 前台服务
  7. 解决unity 打包在Android(安卓)8.0上启动出现黑屏问题(Android权
  8. (安卓/android)第一次开机扫描过程分析与第一次启动速度优化
  9. Activity(启动模式) Activity(退出)

随机推荐

  1. Android上鲜为人知的UI控件介绍和使用
  2. 创建一个android的Splash Screen
  3. Android群英传第一章笔记·Android体系与
  4. Android(安卓)实用工具Hierarchy Viewer
  5. Android多媒体开发【10】-- android中Ope
  6. Android中Handler与Message的简单实例
  7. 用shape美化控件
  8. 用Lazarus编译Android工程
  9. Android中的Context
  10. Android代码内存优化建议-Android资源篇