对Android的启动模式不是很了解,这里记录下简单的理解内容以便日后查看。

Androi的四种启动模式分别为:standard,singleTop,singleTask,singleInstance。为Activity指定启动模式有两种方法,第一种是通过AndroidManifest.xml中为Activity指定添加launchMode

wKiom1Zmn1vQl5WUAABHcMTsnXk302.png

第二种就是通过Intent来设置标志位来指定Activity的启动模式,两者有区别,优先级上是第二种高于第一种。

standard是系统默认的启动模式,也就是说设不设置launchMode都是标准模式,每次启动一个Activity都会重新创建一个新的实例,如有个Activity为A跳转本身时,A->A1->A2,都会产生新的界面,当按back键时后退顺序为A2->A1->A,依次退出。


singleTop与设置标记位FLAG_ACTIVITY_SINGLE_TOP效果相同,当该实例位于栈顶时就不再创建同时onNewIntent方法会被回调,在此方法中可以得到回调信息,如Activity A跳转本身,点击多次都不再跳转新的界面,但是当A->B->A1时,A不在栈顶产生新的实例A1,退出时A1->B->A。


singleTask与设置标记位FLAG_ACTIVITY_NEW_TASK效果相同,与singleTop一样系统会回调其onNewIntent方法,当跳转本身时不会再产生新实例,如果已有实例会把其调到栈顶,如果没有则会创建并压入栈中,如A->B->C->A,A为singleTask如果此时退出则直接退到桌面,因在A实例已存在把其调到栈顶时会把栈内A上面的BC全部出栈,如A->B->C,退出时C->B->A。


singleInstance比较复杂其拥有singleTask的特性又加强了一点,具有此种模式的Activity只能单独的位于一个栈内。当跳转本身时也不会再产生新的实例,当A->B->C->B,此时B为singleInstance模式,退出时为B->C->A,当A->B->C,退出为C->A->B,因此时B在一个栈内,A与C在另一个栈内,一个栈内退出后再退另一个栈。

更多相关文章

  1. FastBoot BootLoader Recovery 模式解释
  2. Android开发9――Activity的启动模式
  3. Android升华之路------activity的启动模式
  4. AIDL实例分析和讲解
  5. Android四种启动模式
  6. Android常用实例—Alert Dialog的使用
  7. Activity 四种启动模式详细介绍

随机推荐

  1. Android(安卓)仿微信聊天图片
  2. Android--自定义视图控件(一)(Android St
  3. Android编译系统中头文件搜索路径顺序的
  4. 往android的内核添加驱动(其实就是添加lin
  5. Android桌面小部件AppWidget:音乐播放器桌
  6. Android开发者将越来越有前途
  7. 在Android中,如何以编程方式在dp中设置边
  8. Android 避免内存泄漏
  9. Android 应用桌面角标显示
  10. Android生成keystore