说了生命周期,那Android的启动模式有四种,你都了解吗?

我接下来介绍一下这四种呀。

APP新创建之后会有一个任务栈。任务栈采用后进先出的形式。每新启动一个Activity,此Activity便在栈顶,原有Activity则会被压入栈内。

启动模式是每个Activity在栈中以怎样的形式存在。

启动模式在图下中配置


一:默认模式(standard)

四个Activity的启动模式都是默认模式(standard),启动顺序A-B-C-D,则在任务栈的情况是图一的情况。

此时如果D启动B的话,则B重新oncreate()创建一个实例在栈顶,任务栈情况是图二。

它会不断的去创建新Activity的实例,重复的在栈内出现。

按返回键的时候则依次会走B-D-C-B-A退出程序。



二:singleTop模式

此模式只判断启动的Activity是否在栈顶,如果不在栈顶则重新创建,存在则不重新存在。

四个Activity:A,C,D是默认启动模式,B是singTop启动模式。

启动A-B-C-D在任务栈情况如图一

此时D启动B,则在任务栈情况如图二,因为B不在栈顶,则会创建新的Activity。

按返回键返回Activity的情况则是


按返回键的时候则依次会走B-D-C-B-A退出程序。


三:singleTask模式

它是检测整个Activity中是否有此Activity。有则不重新创建,并且把此Activity以上的Activity都销毁。

四个Activity:A,C,D是默认启动模式,B是singleTask启动模式。

启动A-B-C-D在任务栈情况如图一

此时D启动B,则在任务栈情况如图二,因为B在栈内存在。并且会把B以上的Activity都销毁,只存在B和A.


按返回键返回Activity的情况则是B—A程序退出


四:signleInstance模式

Singlestance会出现在一个新的任务栈中,并且该任务栈只会存在这一个Activity。

四个Activity:A,C,D是默认启动模式,B是signleInstance启动模式。

ACD的任务栈号是在640在任务栈的情况是图一




B会新启动一个任务栈,任务栈号是641在任务栈的情况是图二



此时D启动B,B不会被重建。此时任务栈情况为图三


按返回键的则B销毁,任务栈641销毁B-D-C-A



注意:启动模式只针对Activity本身。可根据项目对Activity进行对应的启动模式!!!



更多相关文章

  1. No.11 使用firewall配置的防火墙策略的生效模式
  2. 【移动开发】Android应用开发者应该知道的东西
  3. Android应用程序的4个组件
  4. 自定义ContentProvider
  5. Android(安卓)java面试题收集
  6. 解决IE apk变成zip:Android(安卓)手机应用程序文件下载服务器 配
  7. Android程序应用运行时输出和查看日志
  8. 摘抄:Android:应用程序的生命周期
  9. android内部存储器和外部存储器

随机推荐

  1. Android中ListView包含CheckBox时滑动丢
  2. [ubuntu][android][adb]no permissions (
  3. Android集成开发环境的搭建
  4. Activity概述
  5. Android之通过AIDL机制实现进程间的通讯
  6. android Sipnner点击相同Item不响应OnIte
  7. Android设备支持USB转RJ45有线网卡( 沐阳
  8. Android纯透明的Activity
  9. Android常用的Gradle配置和加速编译
  10. android中实现tab标签切换时的一些效果