首页 热点资讯 义务教育 高等教育 出国留学 考研考公
您的当前位置:首页正文

怎样才能明白Android四大启动模式?几张图就ok!

2024-12-18 来源:华拓网

前言

CVTE面试的时候答的最烂的一个题目了。废话不多说,因为只要学过Android都应该知道四个启动模式:standardsingleTopsingleTasksingleInstance

思维导图

standard、singleTop、singleTask针对的任务栈都是当前对应的app进程的,而singleInstance指向整个系统。

standard — 标准模式

Activity的默认启动方式。

  • 特征:每次启动一个Activity都会创建一个实例。
  • 应用场景:默认情况。

singleTop — 栈顶复用

  • 特征:如果在栈顶,就不在创建实例。反之则创建。
  • 应用场景:当前要跳转的页面已经在栈顶时,比如说消息通知跳转

singleTask — 栈内复用

  • 特征:如果栈内存在,就将后入栈的实例全部弹出
  • 应用场景:有一个专用主页面作为基础的app,这样的app现在市面上也非常普遍存在,就比如一个Activity中嵌入ViewPager+BottomNavigationBar制作成的一个主页面一样,ViewPager中嵌入了很多的Fragment,这个时候如果是standardsingleTop的形式,很容易让应用卡顿。

注意点:

  • 如果其他App进程开启了Activity1,这个时候会创建新的任务栈
  • 如果以该启动模式启动的Activity1已经活动在后台的一个任务栈中,那么启动后,后台任务栈会一起切换到前台。

singleInstance — 全局唯一

跟前三种启动模式不同,他并不要求实例在同一个任务栈

  • 特征:系统中只会有一个实例。
  • 应用场景:系统内部的应用,比如电话、短信等功能,通过Intent进行传播时,固定的就会调用这些系统自带的应用,在自己的应用中一般比较少使用。

最后

显示全文