Android的启动模式有四种,分别为:standard、singleTop、singleTask、singleInstance;这些都可以在AndroidManifest.xml文件中对应的标签设置android:launchMode,也可以在class文件中动态的设置(singleInstance除外)。

开发者可以根据实际需求为Activity设置对应的启动模式,以避免创建大量重复的Activity实例等问题。

下面介绍下各种启动模式的含义:

1.standard:标准模式,它也是系统的默认模式。此模式下的Activity每次启动都会创建一个新的Activity实例,不管这个Activity是否已经存在实例,被创建的Activity实例的生命周期为:onCreate->onStart->onResume。有一点有趣的地方,如果你用ApplicationContext 区启动standard模式的Activity的时候会报错,后来查了一些资料才知道:因为非Activity类型的Context并没有所谓的任务栈,而standard模式的Activity会默认进入启动它的Activity所属的任务栈中。

2.singleTop:在此模式下的Activity如果处于栈顶,且此时启动该Activity,并不会创建新的实例,onNewIntent方法会被调用。如果启动该Activity时,此Activity没有处于栈顶,此时则会为该Activity创建新的实例。

3.singleTask:设置这个模式的Activity在所属的任务栈中只会存在一个实例,若启动该Activity时已经存在Activity的实例,且不管当前实例处于栈的任何位置,都会把任务栈中处于该Activity实例对象上面的Activity实例清除掉,使其本身处于栈顶,此时的Activity会调用onNewIntent方法。

4.singleInstance:俗话说一山不容二虎,用来形容这个模式再恰当不过来,设置为这种模式的Activity只会单独的存在于一个任务栈中,无论怎么操作,它都不会再创建新的实例(除非这个任务栈被系统销毁了)


第一次写文章内心还是很忐忑的,有什么写的不对的请各位大牛多多指点,谢谢!!!

更多相关文章

  1. Android中AsyncTask的源码分析以及实例
  2. AudioFlinger 如何通过 hwBinder 调用 Audio HAL
  3. Android(安卓)面试题笔记-------bindservice与startservice的生
  4. Android获取应用运行次数
  5. Android使用intent跳转到其它应用activity界面
  6. spring cloud+spring boot+redis社交电子商务平台
  7. Android四大组件之Activity(一)
  8. [Andriod] android中singleTask的home键的问题
  9. Android(安卓)之 Activity (一) 基础知识

随机推荐

  1. OpenGL.Shader:1-重新认识Android上OpenGL
  2. android实现签名功能
  3. Android Compile Error Do not Accept Li
  4. Android Studio实现人民币与美元的转换
  5. Android(安卓)SDK作用和结构
  6. Android7.0中文文档(API)-- AdapterView.On
  7. Android Button的背景图片拉伸变形解决方
  8. 好久米有碎碎念啦 android how to click
  9. 2020-08-07
  10. 关于Android的Activity的onCreate多次调