Android Activity启动模式

一个Android应用一般都会有多个Activity,系统会通过任务栈来管理这些Activity。Activity启动模式不同,系统通过任务栈管理Activity的方式也会不同,下面就来介绍一下Activity的四种启动模式。


Activity的四种启动模式:

Android Activity启动模式_第1张图片
启动模式图
1. 启动模式配置

在AndroidMenifest中配置



   
      ...
   

2. 启动模式介绍
  • standard —— 默认模式
    该模式是默认的启动模式,即标准模式,在不指定启动模式的前提下,系统默认使用该模式启动Activity,每次启动一个Activity都会重写创建一个新的实例,不管这个实例存不存在。这种模式下,被启动的Activity会自动添加到启动它的Activity的任务栈中。这个Activity创建时onCreate()onStart()onResume()方法都会被调用。

  • singleTop —— 栈顶复用模式
    该模式下,如果新启动的Activity已经位于栈顶,那么这个Activity不会被重写创建,而是会回调它的onNewIntent()方法,通过此方法的参数我们可以去除当前请求的信息。如果栈顶不存在该Activity的实例,此时将重新创建新的Activity实例并添加到栈顶。

  • singleTask —— 栈内复用模式
    该模式下,如果栈中存在这个Activity的实例就会复用这个Activity,不管它是否位于栈顶都不会重新创建新的Activity实例,而是将它上面的Activity全部出栈,并且会回调该实例的onNewIntent()方法。

  • singleInstance —— 全局唯一模式
    该模式除了具备singleTask模式的特性外,此模式下的Activity会单独占用一个Task栈,具有全局唯一性,即整个系统中就这么一个实例,由于栈内复用的特性,后续的请求均不会创建新的Activity实例,除非这个特殊的任务栈被销毁了。


以上分析了Activity的4种启动模式,具体使用要看哪种模式更满足应用功能,更有利于用户体验。

你可能感兴趣的:(Android Activity启动模式)